bcachefs: set FMODE_CAN_ODIRECT instead of a dummy direct_IO method
authorYouling Tang <tangyouling@kylinos.cn>
Fri, 10 May 2024 06:10:58 +0000 (14:10 +0800)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 20 May 2024 09:37:26 +0000 (05:37 -0400)
Since commit a2ad63daa88b ("VFS: add FMODE_CAN_ODIRECT file flag") file
systems can just set the FMODE_CAN_ODIRECT flag at open time instead of
wiring up a dummy direct_IO method to indicate support for direct I/O.
Do that for bcachefs so that noop_direct_IO can eventually be removed.

Similar to commit b29434999371 ("xfs: set FMODE_CAN_ODIRECT instead of
a dummy direct_IO method").

Signed-off-by: Youling Tang <tangyouling@kylinos.cn>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fs.c

index fd851f10d11c45fb1a50d45db0c861052bd5a9c0..9b41c6e9deefca7c1a088e92f7edb9fe4bbae0be 100644 (file)
@@ -1145,6 +1145,8 @@ static int bch2_open(struct inode *vinode, struct file *file)
                        return ret;
        }
 
+       file->f_mode |= FMODE_CAN_ODIRECT;
+
        return generic_file_open(vinode, file);
 }
 
@@ -1237,7 +1239,6 @@ static const struct address_space_operations bch_address_space_operations = {
        .write_end      = bch2_write_end,
        .invalidate_folio = bch2_invalidate_folio,
        .release_folio  = bch2_release_folio,
-       .direct_IO      = noop_direct_IO,
 #ifdef CONFIG_MIGRATION
        .migrate_folio  = filemap_migrate_folio,
 #endif