diff options
author | David Howells <dhowells@redhat.com> | 2021-12-16 00:48:33 +0100 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2022-03-01 18:26:36 +0100 |
commit | 083db6fd3e73fc4f9ee74d2da1012a94216d6a60 (patch) | |
tree | 9bc6936bfd60b7c05c04abcbe225b68a8ff0d465 /fs/ceph/super.h | |
parent | ceph: make ceph_netfs_issue_op() handle inlined data (diff) | |
download | linux-083db6fd3e73fc4f9ee74d2da1012a94216d6a60.tar.xz linux-083db6fd3e73fc4f9ee74d2da1012a94216d6a60.zip |
ceph: uninline the data on a file opened for writing
If a ceph file is made up of inline data, uninline that in the ceph_open()
rather than in ceph_page_mkwrite(), ceph_write_iter(), ceph_fallocate() or
ceph_write_begin().
This makes it easier to convert to using the netfs library for VM write
hooks.
Should this also take the inode lock for the duration on uninlining to
prevent a race with truncation?
[ jlayton: fix up folio locking, update i_inline_version after write ]
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/super.h')
-rw-r--r-- | fs/ceph/super.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ceph/super.h b/fs/ceph/super.h index 67f145e1ae7a..a35c27489901 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -1213,7 +1213,7 @@ extern void __ceph_touch_fmode(struct ceph_inode_info *ci, /* addr.c */ extern const struct address_space_operations ceph_aops; extern int ceph_mmap(struct file *file, struct vm_area_struct *vma); -extern int ceph_uninline_data(struct file *filp, struct page *locked_page); +extern int ceph_uninline_data(struct file *file); extern int ceph_pool_perm_check(struct inode *inode, int need); extern void ceph_pool_perm_destroy(struct ceph_mds_client* mdsc); int ceph_purge_inode_cap(struct inode *inode, struct ceph_cap *cap, bool *invalidate); |