diff options
| author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-10-20 20:53:53 -0400 |
|---|---|---|
| committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-12-21 01:36:16 -0500 |
| commit | 4ae6bbb522f59aef34bb7fb3f7048ecaf72f0ab7 (patch) | |
| tree | 71ef2570042ecd166a34b289bbfc25a5ec63e543 /fs/bcachefs/xattr.c | |
| parent | bcachefs: New bch_extent_rebalance fields (diff) | |
| download | linux-4ae6bbb522f59aef34bb7fb3f7048ecaf72f0ab7.tar.gz linux-4ae6bbb522f59aef34bb7fb3f7048ecaf72f0ab7.zip | |
bcachefs: bch2_write_inode() now checks for changing rebalance options
Previously, BCHFS_IOC_REINHERIT_ATTRS didn't trigger rebalance scans
when changing rebalance options - it had been missed, only the xattr
interface triggered them.
Ideally they'd be done by the transactional trigger, but unpacking the
inode to get the options is too heavy to be done in the low level
trigger - the inode trigger is run on every extent update, since the
bch_inode.bi_journal_seq has to be updated for fsync.
bch2_write_inode() is a good compromise, it already unpacks and repacks
and is not run in any super-fast paths.
Additionally, creating the new rebalance entry to trigger the scan is
now done in the same transaction as the inode update that changed the
options.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/xattr.c')
| -rw-r--r-- | fs/bcachefs/xattr.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/fs/bcachefs/xattr.c b/fs/bcachefs/xattr.c index bf3c6bb50495..ed418a747cdd 100644 --- a/fs/bcachefs/xattr.c +++ b/fs/bcachefs/xattr.c @@ -565,13 +565,6 @@ static int bch2_xattr_bcachefs_set(const struct xattr_handler *handler, ret = bch2_write_inode(c, inode, inode_opt_set_fn, &s, 0); err: mutex_unlock(&inode->ei_update_lock); - - if (value && - (opt_id == Opt_background_target || - opt_id == Opt_background_compression || - (opt_id == Opt_compression && !inode_opt_get(c, &inode->ei_inode, background_compression)))) - bch2_set_rebalance_needs_scan(c, inode->ei_inode.bi_inum); - err_class_exit: return bch2_err_class(ret); } |
