mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 11:06:41 -05:00
fs/ntfs3: check for shutdown in fsync
Ensure fsync() returns -EIO when the ntfs3 filesystem is in forced shutdown, instead of silently succeeding via generic_file_fsync(). Signed-off-by: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
This commit is contained in:
@@ -1440,6 +1440,18 @@ static ssize_t ntfs_file_splice_write(struct pipe_inode_info *pipe,
|
||||
return iter_file_splice_write(pipe, file, ppos, len, flags);
|
||||
}
|
||||
|
||||
/*
|
||||
* ntfs_file_fsync - file_operations::fsync
|
||||
*/
|
||||
static int ntfs_file_fsync(struct file *file, loff_t start, loff_t end, int datasync)
|
||||
{
|
||||
struct inode *inode = file_inode(file);
|
||||
if (unlikely(ntfs3_forced_shutdown(inode->i_sb)))
|
||||
return -EIO;
|
||||
|
||||
return generic_file_fsync(file, start, end, datasync);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
const struct inode_operations ntfs_file_inode_operations = {
|
||||
.getattr = ntfs_getattr,
|
||||
@@ -1462,7 +1474,7 @@ const struct file_operations ntfs_file_operations = {
|
||||
.splice_write = ntfs_file_splice_write,
|
||||
.mmap_prepare = ntfs_file_mmap_prepare,
|
||||
.open = ntfs_file_open,
|
||||
.fsync = generic_file_fsync,
|
||||
.fsync = ntfs_file_fsync,
|
||||
.fallocate = ntfs_fallocate,
|
||||
.release = ntfs_file_release,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user