noatime option for CIFS
Steven French
sfrench at us.ibm.com
Sat Jul 29 01:28:13 GMT 2006
Similar to the case of other protocols, if the server updates the atime,
the client will eventually reflect this change. Some local filesystems
on the server can not be mounted with "noatime." In the absense of
mounting the filesystem (on the server) with noatime or equivalent all
local access to a fille (inode) including access from the Samba server
(indirectly generated by the client) - will update atime on the server
(and eventually cause the client's atime to be updated).
The reason for the noatime option on nfs (and why I would consider it
worth investigating for cifs) as I understand it, is to increase network
performance and to avoid unnecessary setattr calls to flow across the
network (SMB SetPathInfo is sent less often).
In addition to noatime (to set atime less frequently), querying timestamps
across the network too often is a performance cost - CIFS caches
timestamps (and filesize) for 1 second to reduce network traffic. In
order to handle very slow links, this should be configurable via a mount
parm (to reduce the getattr, ie SMB QueryPathInfo calls to a minimum)
I should expose the create time - but not sure the best way to do this
(probably via an xattr, ie getfattr) and also the dos attributes. For the
dos attributes we should return them in the same format that Samba sets
them (I forget the name - but it is fairly easy to spot in the source for
Samba)
"Kevin Wilcox" wrote:
> On 7/28/06, Steven French <sfrench at us.ibm.com> wrote:
> > I think it would be on the order of 50 to 150 lines of code.
> >
> > A few lines in fs/cifs/connect.c to parse_mount_options and much of
the
> > rest in inode.c in cifs_setattr and perhaps cifs_revalidate
> >
> > Probably not hard.
> >
> > A reasonably simple testcase (better than scripts that do ls/stat )
would
> > be helpful too
> >
>
> Steve,
>
> I'm really sorry to bother you so much. What I still don't understand
> is how are you going to convey to the CIFS server to not update the
> last access time? I didn't see any provisions in the CIFS protcol for
> this.
>
> On another subject: I asked a question on the linux-cifs-client about
> getfattr not working. Did you see that e-mail? I'm trying to get the
> DOS/Win file creation time. A google search indicated that it should
> work, but I get no output from getfattr for any extended attribute.
> I've mounted the FS with the user_xatrr on and off with no change.
>
> Thanks,
> Kevin
Steve French
Senior Software Engineer
Linux Technology Center - IBM Austin
phone: 512-838-2294
email: sfrench at-sign us dot ibm dot com
More information about the samba-technical
mailing list