projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'fuse-update-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mszered...
[linux-2.6-microblaze.git]
/
fs
/
fuse
/
file.c
diff --git
a/fs/fuse/file.c
b/fs/fuse/file.c
index
f196680
..
11404f8
100644
(file)
--- a/
fs/fuse/file.c
+++ b/
fs/fuse/file.c
@@
-246,7
+246,7
@@
int fuse_open_common(struct inode *inode, struct file *file, bool isdir)
}
if (dax_truncate) {
}
if (dax_truncate) {
-
down_write(&get_fuse_inode(inode)->i_mmap_sem
);
+
filemap_invalidate_lock(inode->i_mapping
);
err = fuse_dax_break_layouts(inode, 0, 0);
if (err)
goto out;
err = fuse_dax_break_layouts(inode, 0, 0);
if (err)
goto out;
@@
-258,7
+258,7
@@
int fuse_open_common(struct inode *inode, struct file *file, bool isdir)
out:
if (dax_truncate)
out:
if (dax_truncate)
-
up_write(&get_fuse_inode(inode)->i_mmap_sem
);
+
filemap_invalidate_unlock(inode->i_mapping
);
if (is_wb_truncate | dax_truncate) {
fuse_release_nowrite(inode);
if (is_wb_truncate | dax_truncate) {
fuse_release_nowrite(inode);
@@
-2941,7
+2941,7
@@
static long fuse_file_fallocate(struct file *file, int mode, loff_t offset,
if (lock_inode) {
inode_lock(inode);
if (block_faults) {
if (lock_inode) {
inode_lock(inode);
if (block_faults) {
-
down_write(&fi->i_mmap_sem
);
+
filemap_invalidate_lock(inode->i_mapping
);
err = fuse_dax_break_layouts(inode, 0, 0);
if (err)
goto out;
err = fuse_dax_break_layouts(inode, 0, 0);
if (err)
goto out;
@@
-2997,7
+2997,7
@@
out:
clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
if (block_faults)
clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
if (block_faults)
-
up_write(&fi->i_mmap_sem
);
+
filemap_invalidate_unlock(inode->i_mapping
);
if (lock_inode)
inode_unlock(inode);
if (lock_inode)
inode_unlock(inode);
@@
-3066,7
+3066,7
@@
static ssize_t __fuse_copy_file_range(struct file *file_in, loff_t pos_in,
* modifications. Yet this does give less guarantees than if the
* copying was performed with write(2).
*
* modifications. Yet this does give less guarantees than if the
* copying was performed with write(2).
*
- * To fix this a
i_mmap_sem style
lock could be used to prevent new
+ * To fix this a
mapping->invalidate_
lock could be used to prevent new
* faults while the copy is ongoing.
*/
err = fuse_writeback_range(inode_out, pos_out, pos_out + len - 1);
* faults while the copy is ongoing.
*/
err = fuse_writeback_range(inode_out, pos_out, pos_out + len - 1);