On Wed, 26 Mar 2014 23:05:20 +0900
Tetsuo Handa <[email protected]> wrote:

> Jeffrey Layton wrote:
> > > ...or that samba is omitting it and is sending cached info
> > > instead of doing the lstat() call? I'm not sure if it does that,
> > > but I don't think you should draw too many conclusions about the
> > > behavior of cifs.ko from stracing smbd.
> > > 
> > > What may make more sense is to get network captures and analyze
> > > the behavior from that perspective.
> > > 
> > 
> > ...or maybe it *is* cifs.ko. From cifs_inode_needs_reval:
> > 
> > 
> >         if (!time_in_range(jiffies, cifs_i->time,
> >                                 cifs_i->time + cifs_sb->actimeo))
> >                 return true;
> > 
> > 
> > ...I think though that if cifs_i->time == jiffies and actimeo=0,
> > then that condition will be false. As a quick check, it might be
> > good to add something like this before that if statement and then
> > rerun your test:
> > 
> >     if (!cifs_sb->actimeo)
> >             return true;
> > 
> > That should get rid of that particular corner case.
> 
> Yes, I confirmed that below change fixes this problem. Thank you.
> 
> --- a/fs/cifs/inode.c
> +++ b/fs/cifs/inode.c
> @@ -1737,6 +1737,8 @@ cifs_inode_needs_reval(struct inode *inode)
>       if (cifs_i->time == 0)
>               return true;
>  
> +     if (!cifs_sb->actimeo)
> +             return true;
>       if (!time_in_range(jiffies, cifs_i->time,
>                               cifs_i->time + cifs_sb->actimeo))
>               return true;

Great, thanks for testing it. I'll send Steve a patch for 3.15 and cc
you.

-- 
Jeff Layton <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to