Re: [RFC][PATCH v2 4/4] vfs: wrap write f_ops with file_{start,end}_write()
From: Amir Goldstein <amir73il@gmail.com>
Date: 2017-01-31 07:12:28
Also in:
linux-fsdevel
From: Amir Goldstein <amir73il@gmail.com>
Date: 2017-01-31 07:12:28
Also in:
linux-fsdevel
On Fri, Jan 27, 2017 at 1:09 PM, Miklos Szeredi [off-list ref] wrote:
On Mon, Jan 23, 2017 at 8:43 PM, Amir Goldstein [off-list ref] wrote:quoted
Before calling write f_ops, call file_start_write() instead of sb_start_write(). This ensures freeze protection for both overlay and upper fs when file is open from an overlayfs mount. Replace {sb,file}_start_write() for {copy,clone}_file_range() and for fallocate(). For dedup_file_range() there is no need for mnt_want_write_file(). File is already open for write, so we already have mnt_want_write() and we only need file_start_write().Being opened for write is not verified if capable(CAP_SYS_ADMIN). Ugly special case, don't ask me why it's done...
Miklos, Your comment was correct, but you applied the patch as is with the dedup_file_range() change to overlayfs-next regardless. mistake?? I was preparing to re-send without the dedup_file_range() bits, but then I realized that it is possible to get to fallocate() and copy_file_range() with non regular file, so I did not re-send. I'll re-post with another patch to limit fallocate() and copy_file_range() to regular file in vfs helper.