Re: [PATCH v2 9/9] cifs: ensure we revalidate the inode after readdir if cifsacl is enabled

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For the common case of simply "ls" (vs "ls -l") does this affect
performance (have you double checked)?

On Fri, Oct 19, 2012 at 7:20 AM, Jeff Layton <jlayton@xxxxxxxxxx> wrote:
> Otherwise, "ls -l" will simply show the ownership of the files as
> the default mnt_uid/gid. This may make "ls -l" performance on large
> directories super-suck in some cases, but that's the cost of cifsacl.
>
> One possibility to make it suck less would be to somehow proactively
> dispatch the ACL requests asynchronously from readdir codepath, but
> that's non-trivial to implement.
>
> Signed-off-by: Jeff Layton <jlayton@xxxxxxxxxx>
> ---
>  fs/cifs/readdir.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
>
> diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
> index f9b5d3d..96fe44b 100644
> --- a/fs/cifs/readdir.c
> +++ b/fs/cifs/readdir.c
> @@ -134,6 +134,16 @@ cifs_fill_common_info(struct cifs_fattr *fattr, struct cifs_sb_info *cifs_sb)
>         if (fattr->cf_cifsattrs & ATTR_READONLY)
>                 fattr->cf_mode &= ~S_IWUGO;
>
> +       /*
> +        * We of course don't get ACL info in FIND_FIRST/NEXT results, so
> +        * mark it for revalidation so that "ls -l" will look right. It might
> +        * be super-slow, but if we don't do this then the ownership of files
> +        * may look wrong since the inodes may not have timed out by the time
> +        * "ls" does a stat() call on them.
> +        */
> +       if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_CIFS_ACL)
> +               fattr->cf_flags |= CIFS_FATTR_NEED_REVAL;
> +
>         if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_UNX_EMUL &&
>             fattr->cf_cifsattrs & ATTR_SYSTEM) {
>                 if (fattr->cf_eof == 0)  {
> --
> 1.7.11.7
>



-- 
Thanks,

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux