All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amir Goldstein <amir73il@gmail.com>
To: Eddie Horng <eddiehorng.tw@gmail.com>
Cc: Jeff Layton <jlayton@kernel.org>,
	Miklos Szeredi <miklos@szeredi.hu>,
	overlayfs <linux-unionfs@vger.kernel.org>,
	Trond Myklebust <trondmy@primarydata.com>,
	"J. Bruce Fields" <bfields@fieldses.org>
Subject: Re: readdir returns d_type=DT_UNKNOWN to overlay exported dir (NFSv3)
Date: Thu, 15 Mar 2018 15:13:01 +0200	[thread overview]
Message-ID: <CAOQ4uxi1qFM5UguMswnAWWCGNVwzNYMr_rJtN=+Bt9tUhhPFuA@mail.gmail.com> (raw)
In-Reply-To: <CALLuPvr+z_NiGVBDhOOtsahjSo0Vn9Y5wi+Pg6FDvFjKkwZPZA@mail.gmail.com>

On Thu, Mar 15, 2018 at 11:47 AM, Eddie Horng <eddiehorng.tw@gmail.com> wrote:
> I tried to track the difference between overlay-NFSv3 and ext4-NFSv3
> of encode_post_op_attr.
> mount configuration:
> none /share overlay
> rw,relatime,lowerdir=/base/lower,upperdir=/base/upper,workdir=/base/work,index=on,nfs_export=on
> 0 0
> localhost:/share /mnt/n nfs
> rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=127.0.0.1,mountvers=3,mountport=40931,mountproto=udp,local_lock=none,addr=127.0.0.1
> 0 0
> /dev/loop0 /share2 ext4 rw,relatime,data=ordered 0 0
> localhost:/share2 /mnt/n2 nfs
> rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=127.0.0.1,mountvers=3,mountport=40931,mountproto=udp,local_lock=none,addr=127.0.0.1
> 0 0
>
> file tree:
> /mnt/n
> |-- dirA
> |   `-- bar
> |-- dirL
> |   `-- ro-file
> `-- foo
>
> /mnt/n2
> `-- lost+found
>
> Attached log are dmesg start from "readdir /mnt/n (n2)" with nfs and
> nfsd log are enabled all by sunrpc.nfs(d)_debug. I also add a
> dump_stack() in the beginning of encode_post_op_attr.
>
> It seems overlay and ext4 have different call flow after "nfsd:
> READDIR+", there is no failure in overlay's encode_post_op_attr, nfsd
> does fill the attrs, same as ext4 but it has additional readdir call
> to child node of "/". I'm not sure if this is normal to overlay and is
> the cause of DT_UNKNOWN.

I tried to follow nfsd readdir code to see where the difference can come
from, but nothing poped at me so far.

>
> In additional, overlay returns DT_UNKNOWN to either lower dir or merged dir.

Your test is readdir of a merged dir, the behavior could differ when readdir of
an overlayfs non merged dir.

Please send the output and dmesg of readdir of the non-merged lower dir:

/readdir/a.out /mnt/n/dirL

Please mount an NFS share of /base and send the output of the same dir:

/readdir/a.out /mnt/n_base/lower/n/dirL

Right now I speculate that the issue you report is related to
how merged dirs are iterated, but not sure exactly why.

Thanks,
Amir.

  reply	other threads:[~2018-03-15 13:13 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-14  8:42 readdir returns d_type=DT_UNKNOWN to overlay exported dir (NFSv3) Eddie Horng
2018-03-14  9:56 ` Amir Goldstein
2018-03-14 11:02 ` Jeff Layton
2018-03-14 14:16   ` Trond Myklebust
2018-03-14 14:30     ` Jeff Layton
2018-03-14 15:03       ` Amir Goldstein
2018-03-14 15:06         ` Trond Myklebust
2018-03-14 15:14           ` Amir Goldstein
2018-03-14 15:40             ` Eddie Horng
2018-03-15  9:23               ` Eddie Horng
2018-03-15  9:47 ` Eddie Horng
2018-03-15 13:13   ` Amir Goldstein [this message]
2018-03-15 13:22     ` Trond Myklebust
2018-03-15 14:30       ` Eddie Horng
2018-03-15 18:40         ` Amir Goldstein
2018-03-15 21:48           ` Amir Goldstein
2018-03-16  6:25             ` Eddie Horng
2018-03-16  7:23               ` Amir Goldstein
2018-03-16  8:06                 ` Eddie Horng
2018-03-16  9:50                   ` Amir Goldstein
2018-03-16 15:06                     ` Eddie Horng
2018-03-16 15:28                       ` Amir Goldstein

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAOQ4uxi1qFM5UguMswnAWWCGNVwzNYMr_rJtN=+Bt9tUhhPFuA@mail.gmail.com' \
    --to=amir73il@gmail.com \
    --cc=bfields@fieldses.org \
    --cc=eddiehorng.tw@gmail.com \
    --cc=jlayton@kernel.org \
    --cc=linux-unionfs@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=trondmy@primarydata.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.