summaryrefslogtreecommitdiffstats
path: root/fs/udf/udfdecl.h
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2023-01-24 12:07:37 +0100
committerJan Kara <jack@suse.cz>2023-01-26 16:46:35 +0100
commit60b99a1b9fa731453e1b69a3e0b3e4dcab7a6ea5 (patch)
tree18ec2564cbcd1cdab8b2c5d8c0510eabba8462c5 /fs/udf/udfdecl.h
parentd5abfb1b7b26086db19ee430dea7282f01d4ef44 (diff)
downloadlinux-stable-60b99a1b9fa731453e1b69a3e0b3e4dcab7a6ea5.tar.gz
linux-stable-60b99a1b9fa731453e1b69a3e0b3e4dcab7a6ea5.tar.bz2
linux-stable-60b99a1b9fa731453e1b69a3e0b3e4dcab7a6ea5.zip
udf: Convert in-ICB files to use udf_write_begin()
Switching address_space_operations while a file is used is difficult to do in a race-free way. To be able to use single address_space_operations in UDF, make in-ICB files use udf_write_begin(). Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf/udfdecl.h')
-rw-r--r--fs/udf/udfdecl.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h
index a851613465c6..32decf6b6a21 100644
--- a/fs/udf/udfdecl.h
+++ b/fs/udf/udfdecl.h
@@ -161,6 +161,9 @@ extern void udf_evict_inode(struct inode *);
extern int udf_write_inode(struct inode *, struct writeback_control *wbc);
int udf_read_folio(struct file *file, struct folio *folio);
int udf_writepages(struct address_space *mapping, struct writeback_control *wbc);
+int udf_write_begin(struct file *file, struct address_space *mapping,
+ loff_t pos, unsigned len,
+ struct page **pagep, void **fsdata);
ssize_t udf_direct_IO(struct kiocb *iocb, struct iov_iter *iter);
extern int8_t inode_bmap(struct inode *, sector_t, struct extent_position *,
struct kernel_lb_addr *, uint32_t *, sector_t *);