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 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?

> 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