diff options
| author | Guoyu Ou <benogy@gmail.com> | 2024-02-13 16:20:04 +0800 |
|---|---|---|
| committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-03-10 15:34:07 -0400 |
| commit | 0be5b38bce6c4d3563f7575f6bac94806b2fbc17 (patch) | |
| tree | 688a5726d99cbb56ea7dd7c115563c9281a039ea /fs/bcachefs/journal_reclaim.c | |
| parent | 067f244c9e4d2c00b493291df5f17510fd0bd9c1 (diff) | |
bcachefs: skip invisible entries in empty subvolume checking
When we are checking whether a subvolume is empty in the specified snapshot,
entries that do not belong to this subvolume should be skipped.
This fixes the following case:
$ bcachefs subvolume create ./sub
$ cd sub
$ bcachefs subvolume create ./sub2
$ bcachefs subvolume snapshot . ./snap
$ ls -a snap
. ..
$ rmdir snap
rmdir: failed to remove 'snap': Directory not empty
As Kent suggested, we pass 0 in may_delete_deleted_inode() to ignore subvols
in the subvol we are checking, because inode.bi_subvol is only set on
subvolume roots, and we can't go through every inode in the subvolume and
change bi_subvol when taking a snapshot. It makes the check less strict, but
that's ok, the rest of fsck will still catch it.
Signed-off-by: Guoyu Ou <benogy@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/journal_reclaim.c')
0 files changed, 0 insertions, 0 deletions
