gfs2: set FMODE_CAN_ODIRECT instead of a dummy direct_IO method
Since commit a2ad63daa8
("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.
Remove .direct_IO from gfs2_aops and set FMODE_CAN_ODIRECT in
gfs2_open_common for regular files that do not use data journalling.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
f9da18cd46
commit
7b7b06d55a
@ -750,7 +750,6 @@ static const struct address_space_operations gfs2_aops = {
|
|||||||
.release_folio = iomap_release_folio,
|
.release_folio = iomap_release_folio,
|
||||||
.invalidate_folio = iomap_invalidate_folio,
|
.invalidate_folio = iomap_invalidate_folio,
|
||||||
.bmap = gfs2_bmap,
|
.bmap = gfs2_bmap,
|
||||||
.direct_IO = noop_direct_IO,
|
|
||||||
.migrate_folio = filemap_migrate_folio,
|
.migrate_folio = filemap_migrate_folio,
|
||||||
.is_partially_uptodate = iomap_is_partially_uptodate,
|
.is_partially_uptodate = iomap_is_partially_uptodate,
|
||||||
.error_remove_page = generic_error_remove_page,
|
.error_remove_page = generic_error_remove_page,
|
||||||
|
@ -630,6 +630,9 @@ int gfs2_open_common(struct inode *inode, struct file *file)
|
|||||||
ret = generic_file_open(inode, file);
|
ret = generic_file_open(inode, file);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
if (!gfs2_is_jdata(GFS2_I(inode)))
|
||||||
|
file->f_mode |= FMODE_CAN_ODIRECT;
|
||||||
}
|
}
|
||||||
|
|
||||||
fp = kzalloc(sizeof(struct gfs2_file), GFP_NOFS);
|
fp = kzalloc(sizeof(struct gfs2_file), GFP_NOFS);
|
||||||
|
Loading…
Reference in New Issue
Block a user