Re: [fsck.overlay RFC PATCH] overlay: add fsck utility

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

 



On Wed, Mar 7, 2018 at 1:14 PM, Amir Goldstein <amir73il@xxxxxxxxx> wrote:
> On Wed, Mar 7, 2018 at 11:25 AM, yangerkun <yangerkun@xxxxxxxxxx> wrote:
>>
>>
>> On 11/18/2017 1:13 AM, Amir Goldstein wrote:
>>>
>>> [adding fstests in CC with full patch inline to collect wisdom from
>>> other fs developers]
>>>
>>> On Fri, Nov 17, 2017 at 7:49 AM, zhangyi (F) <yi.zhang@xxxxxxxxxx> wrote:
>>>>
>>>> Hi,
>>
>> [...]
>>>>
>>>>
>>>> Todo
>>>> ====
>>>>
>>>> 1. Overlay filesystem mounted check. Prevent fscking when overlay is
>>>> online. Now, We cannot distinguish mounted directories if overlayfs was
>>>> mounted with relative path.
>>>
>>>
>>> This should be handled by kernel.
>>> We now already grab an advisory exclusive I_OVL_INUSE lock on both
>>> upperdir and workdir.
>>> fsck.overlay can try to open upperdir/workdir with O_EXCL|O_DIRECTORY
>>> and kernel should fail this open if overlayfs is holding the  I_OVL_INUSE.
>>> Read the man page section on O_EXCL and block device. This is how
>>> e2fsck and friends get exclusive access w.r.t mount.
>>>
>>
>> In fsck.overlay, lower layer file/dir may be modified with there is not
>> I_OVL_INUSE in lower layer, but we cannot check does lower layer mounted
>> with I_OVL_INUSE.
>>
>
> Can you list the possible modifications the fsck.overlay can do on lower layer?
> What exactly are we trying to protect from?
>

Also, if we follow my suggestion above for upperdir/workdir
fsck.overlay may still
try to aquire I_OVL_INUSE on lowerdir with O_EXCL|O_DIRECTORY and kernel
can test I_OVL_INUSE flag on lowerdir without trying to set it on mount.

>> Maybe we need adopt another way? How about store pwd in ofs.config when we
>> mount the overlay.
>>
>
> I don't understand what that means.
>
> Instead of relying on the partial information available in /proc/<pid>/mountinfo
> we can export more interesting information from kernel per overlayfs mount,
> see for example the information available at /proc/fs/ext4/<blockdev>/
>
> For example, we can expose "layers" information, including the file handle of
> all layers root dir, so fsck.overlay can figure out if any upper/lower
> dir are in-use
> without needing to resolve paths.
>
> There is probably other interesting information from ofs.config that can
> be exposed this way.
>
> Instead of <blockdev> (in the ext4 case) the key would have to be the overlayfs
> anonymous dev, which can be read by stat(2) on any overlay directory.
>
> Thanks,
> Amir.
--
To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux