diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2021-04-13 10:24:08 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2021-04-13 10:24:15 -0400 |
commit | 967c8704989f6194dc40ea884b5d0f713d4fb74c (patch) | |
tree | d4a317ed7405e3f4174604a6c5450d44e98af923 /libbcachefs/fs-common.c | |
parent | b422ff58ba8eedcfef3b67b66468660f07b0cfc1 (diff) |
Update bcachefs sources to 8eca47e4d5 bcachefs: Improved check_directory_structure()
Diffstat (limited to 'libbcachefs/fs-common.c')
-rw-r--r-- | libbcachefs/fs-common.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libbcachefs/fs-common.c b/libbcachefs/fs-common.c index 281a6135..34d69c3f 100644 --- a/libbcachefs/fs-common.c +++ b/libbcachefs/fs-common.c @@ -110,8 +110,6 @@ int bch2_link_trans(struct btree_trans *trans, u64 dir_inum, inode_u->bi_ctime = now; bch2_inode_nlink_inc(inode_u); - inode_u->bi_flags |= BCH_INODE_BACKPTR_UNTRUSTED; - dir_iter = bch2_inode_peek(trans, dir_u, dir_inum, 0); ret = PTR_ERR_OR_ZERO(dir_iter); if (ret) @@ -175,6 +173,12 @@ int bch2_unlink_trans(struct btree_trans *trans, if (ret) goto err; + if (inode_u->bi_dir == k.k->p.inode && + inode_u->bi_dir_offset == k.k->p.offset) { + inode_u->bi_dir = 0; + inode_u->bi_dir_offset = 0; + } + dir_u->bi_mtime = dir_u->bi_ctime = inode_u->bi_ctime = now; dir_u->bi_nlink -= S_ISDIR(inode_u->bi_mode); bch2_inode_nlink_dec(inode_u); |