Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1351525 > unrolled thread

Re: [PATCH 0/2] Fix hardlinks in overlay

Started byMiklos Szeredi <miklos@szeredi.hu>
First post2016-03-07 11:50 +0100
Last post2016-03-07 18:40 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 0/2] Fix hardlinks in overlay Miklos Szeredi <miklos@szeredi.hu> - 2016-03-07 11:50 +0100
    Re: [PATCH 0/2] Fix hardlinks in overlay Alexander Morozov <alexandr.morozov@docker.com> - 2016-03-07 18:40 +0100

#1351525 — Re: [PATCH 0/2] Fix hardlinks in overlay

FromMiklos Szeredi <miklos@szeredi.hu>
Date2016-03-07 11:50 +0100
SubjectRe: [PATCH 0/2] Fix hardlinks in overlay
Message-ID<ra0TD-1Io-5@gated-at.bofh.it>
On Fri, Oct 9, 2015 at 9:34 PM, Alexander Morozov
<alexandr.morozov@docker.com> wrote:
> There were reports that overlay doesn't work very well with unix-sockets.
> In particular you can't access unix-socket through hardlink on overlay fs.
> Problem is that overlay creates different inodes for hardlinks and code in
> net/unix/af_unix.c relies on inodes for unix-socket lookup. I think this
> affects any code which relies on inodes from kern_path. There is helper
> d_backing_inode, which I think supposed to get inodes from underlying fs
> (for example ext4), but in current implementation it does nothing.  These
> patches made on top of v4.3-rc4 of main linux tree (master is broken for my
> ubuntu VM), but I tested that they applying on master and there was no
> changes to overlay since v4.3-rc4.
>
> Alexander Morozov (2):
>   fs/overlay: move update and instantiate dentry code to function
>   fs/overlay: use same inodes for hardlinks

Problem is with lookup: how do we go from backing dentry to overlayfs
dentry so the inode can be shared?

Thanks,
Miklos

[toc] | [next] | [standalone]


#1351826

FromAlexander Morozov <alexandr.morozov@docker.com>
Date2016-03-07 18:40 +0100
Message-ID<ra7ip-5Vi-7@gated-at.bofh.it>
In reply to#1351525
Sequence of calls is kern_path(filename, LOOKUP_FOLLOW, &path) ->
filename_lookup(AT_FDCWD, getname_kernel(name), flags, path, NULL) ->
path_lookup(nameidata *nd, flags | LOOKUP_RCU, path) -> path_init(nd,
flags). In that function if I understand correctly nd->path is set to
current_thread_info()->task->fs->pwd and I don't see any further
tricks with dentry, so I suppose that
current_thread_info()->task->fs->pwd->dentry already points to
overlayfs dentry.
Let me know what we can do with it.

Thanks!
- Alex

On Mon, Mar 7, 2016 at 2:49 AM, Miklos Szeredi <miklos@szeredi.hu> wrote:
> On Fri, Oct 9, 2015 at 9:34 PM, Alexander Morozov
> <alexandr.morozov@docker.com> wrote:
>> There were reports that overlay doesn't work very well with unix-sockets.
>> In particular you can't access unix-socket through hardlink on overlay fs.
>> Problem is that overlay creates different inodes for hardlinks and code in
>> net/unix/af_unix.c relies on inodes for unix-socket lookup. I think this
>> affects any code which relies on inodes from kern_path. There is helper
>> d_backing_inode, which I think supposed to get inodes from underlying fs
>> (for example ext4), but in current implementation it does nothing.  These
>> patches made on top of v4.3-rc4 of main linux tree (master is broken for my
>> ubuntu VM), but I tested that they applying on master and there was no
>> changes to overlay since v4.3-rc4.
>>
>> Alexander Morozov (2):
>>   fs/overlay: move update and instantiate dentry code to function
>>   fs/overlay: use same inodes for hardlinks
>
> Problem is with lookup: how do we go from backing dentry to overlayfs
> dentry so the inode can be shared?
>
> Thanks,
> Miklos

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web