diff options
| author | Dave Airlie <airlied@redhat.com> | 2024-04-22 14:35:22 +1000 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2024-04-22 14:35:52 +1000 |
| commit | 0208ca55aa9c9b997da1f5bc45c4e98916323f08 (patch) | |
| tree | e3130b2116f7738ac7cd79ad71698f545bb7db69 /fs/bcachefs/fs-io.c | |
| parent | Merge tag 'drm-misc-next-2024-04-19' of https://gitlab.freedesktop.org/drm/mi... (diff) | |
| parent | Linux 6.9-rc5 (diff) | |
| download | linux-0208ca55aa9c9b997da1f5bc45c4e98916323f08.tar.gz linux-0208ca55aa9c9b997da1f5bc45c4e98916323f08.zip | |
Backmerge tag 'v6.9-rc5' into drm-next
Linux 6.9-rc5
I've had a persistent msm failure on clang, and the fix is in fixes
so just pull it back to fix that.
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'fs/bcachefs/fs-io.c')
| -rw-r--r-- | fs/bcachefs/fs-io.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c index 8c70123b6a0c..20b40477425f 100644 --- a/fs/bcachefs/fs-io.c +++ b/fs/bcachefs/fs-io.c @@ -174,18 +174,18 @@ void __bch2_i_sectors_acct(struct bch_fs *c, struct bch_inode_info *inode, static int bch2_flush_inode(struct bch_fs *c, struct bch_inode_info *inode) { - struct bch_inode_unpacked u; - int ret; - if (c->opts.journal_flush_disabled) return 0; - ret = bch2_inode_find_by_inum(c, inode_inum(inode), &u); - if (ret) - return ret; + if (!bch2_write_ref_tryget(c, BCH_WRITE_REF_fsync)) + return -EROFS; - return bch2_journal_flush_seq(&c->journal, u.bi_journal_seq) ?: - bch2_inode_flush_nocow_writes(c, inode); + struct bch_inode_unpacked u; + int ret = bch2_inode_find_by_inum(c, inode_inum(inode), &u) ?: + bch2_journal_flush_seq(&c->journal, u.bi_journal_seq) ?: + bch2_inode_flush_nocow_writes(c, inode); + bch2_write_ref_put(c, BCH_WRITE_REF_fsync); + return ret; } int bch2_fsync(struct file *file, loff_t start, loff_t end, int datasync) |
