Re: [PATCH v3 4/4] ovl: use vfs_copy_file_range() to copy up file data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 22, 2016 at 5:49 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
> On Thu, Sep 22, 2016 at 10:49 AM, Amir Goldstein <amir73il@xxxxxxxxx> wrote:
>> Guys, I just hit a lockdep warning on nesting an mnt_want_write() with
>> this patch
>> because overlay already holds the write lock when getting to ovl_copy_up_data()
>> I don't know how I missed it before.
>>
>> Is it really a problem to nest this lock?
>> Should I factor our another set of _locked helpers from the
>> vfs_{copy,clone}_file_range helpers?
>>
>
> vfs_{copy,clone}_file_range should call sb_start_write() instead of
> mnt_want_write_file(), the checks against FMODE_WRITE + S_ISREG ensure
> that the __mnt_want_write() part is already held on the file.

Wait a minute, I think you got the solution but mixed it up a bit.
IIUC, vfs_{clone,copy} should call __mnt_want_write_file()
instead of mnt_want_write_file(), which will skip sb_start_write()
because file is already open for write and no lockdep warning
and no problem.

Am I missing something?

>
> That still leaves the lockdep warning.  We could do
> __vfs_{copy,clone}_file_range() variants without the
> sb_start_write()/sb_end_write() and add the non-underscore variants as
> static inline to fs.h that do call the sb_start/end_write.
>
> Thanks,
> Miklos
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux