diff options
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/features/bit-rot/src/stub/bit-rot-stub.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/xlators/features/bit-rot/src/stub/bit-rot-stub.c b/xlators/features/bit-rot/src/stub/bit-rot-stub.c index 67103f6b5e1..4e01f5c86b1 100644 --- a/xlators/features/bit-rot/src/stub/bit-rot-stub.c +++ b/xlators/features/bit-rot/src/stub/bit-rot-stub.c @@ -2631,6 +2631,18 @@ br_stub_handle_lookup_error (xlator_t *this, inode_t *inode, int32_t op_errno)          }          UNLOCK (&inode->lock); +        if (__br_stub_is_bad_object (ctx)) { +                /* File is not present, might be deleted for recovery, +                 * del the bitrot inode context +                 */ +                ctx_addr = 0; +                inode_ctx_del (inode, this, &ctx_addr); +                if (ctx_addr) { +                        ctx = (br_stub_inode_ctx_t *)(long)ctx_addr; +                        GF_FREE (ctx); +                } +        } +  out:          return;  }  | 
