Thanks for the help Trond! I'll fix the code and send another patch. Best, - Achilles --- On Mon, Apr 20, 2020 at 12:42 AM Trond Myklebust <trondmy@xxxxxxxxxxxxxxx> wrote: > > On Sun, 2020-04-19 at 23:06 +0530, Achilles Gaikwad wrote: > > Add filename to states output for ease of debugging. > > > > Signed-off-by: Achilles Gaikwad <agaikwad@xxxxxxxxxx> > > Signed-off-by: Kenneth Dsouza <kdsouza@xxxxxxxxxx> > > --- > > fs/nfsd/nfs4state.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c > > index e32ecedece0f..0f4ed5e3fbe4 100644 > > --- a/fs/nfsd/nfs4state.c > > +++ b/fs/nfsd/nfs4state.c > > @@ -2414,6 +2414,11 @@ static void nfs4_show_superblock(struct > > seq_file *s, struct nfsd_file *f) > > inode->i_ino); > > } > > > > +static void nfs4_show_fname(struct seq_file *s, struct nfsd_file *f) > > +{ > > + seq_printf(s, "filename: \"%s\"", f->nf_file->f_path.dentry- > > >d_name.name); > > Please consider using the '%pD' format specifier, as described in > Documentation/core-api/printk-formats.rst, which is designed to avoid > races with rename in cases like the above. > > Note that most debugging printks use something like %pD2 in order to > display the name of the parent directory as well, in which case you > want > > seq_printf (s, "filename: \"%pD2\"", f->nf_file); > > > +} > > + > > static void nfs4_show_owner(struct seq_file *s, struct > > nfs4_stateowner *oo) > > { > > seq_printf(s, "owner: "); > > @@ -2449,6 +2454,8 @@ static int nfs4_show_open(struct seq_file *s, > > struct nfs4_stid *st) > > > > nfs4_show_superblock(s, file); > > seq_printf(s, ", "); > > + nfs4_show_fname(s, file); > > + seq_printf(s, ", "); > > nfs4_show_owner(s, oo); > > seq_printf(s, " }\n"); > > nfsd_file_put(file); > > @@ -2480,6 +2487,8 @@ static int nfs4_show_lock(struct seq_file *s, > > struct nfs4_stid *st) > > nfs4_show_superblock(s, file); > > /* XXX: open stateid? */ > > seq_printf(s, ", "); > > + nfs4_show_fname(s, file); > > + seq_printf(s, ", "); > > nfs4_show_owner(s, oo); > > seq_printf(s, " }\n"); > > nfsd_file_put(file); > > @@ -2506,6 +2515,7 @@ static int nfs4_show_deleg(struct seq_file *s, > > struct nfs4_stid *st) > > /* XXX: lease time, whether it's being recalled. */ > > > > nfs4_show_superblock(s, file); > > + nfs4_show_fname(s, file); > > seq_printf(s, " }\n"); > > > > return 0; > > @@ -2524,6 +2534,7 @@ static int nfs4_show_layout(struct seq_file *s, > > struct nfs4_stid *st) > > /* XXX: What else would be useful? */ > > > > nfs4_show_superblock(s, file); > > + nfs4_show_fname(s, file); > > seq_printf(s, " }\n"); > > > > return 0; > > -- > Trond Myklebust > Linux NFS client maintainer, Hammerspace > trond.myklebust@xxxxxxxxxxxxxxx > >