From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff Layton Subject: Re: [PATCH v23 10/22] posix_acl: Improve xattr fixup code Date: Tue, 05 Jul 2016 11:38:50 -0400 Message-ID: <1467733130.3800.36.camel@redhat.com> References: <1467294433-3222-1-git-send-email-agruenba@redhat.com> <1467294433-3222-11-git-send-email-agruenba@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: Christoph Hellwig , Theodore Ts'o , Andreas Dilger , "J. Bruce Fields" , Trond Myklebust , Anna Schumaker , Dave Chinner , linux-ext4-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, xfs-VZNHf3L845pBDgjK7y7TUQ@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-cifs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Andreas Gruenbacher , Alexander Viro Return-path: In-Reply-To: <1467294433-3222-11-git-send-email-agruenba-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> Sender: linux-nfs-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-cifs.vger.kernel.org On Thu, 2016-06-30 at 15:47 +0200, Andreas Gruenbacher wrote: > Both XATTR_NAME_POSIX_ACL_ACCESS and XATTR_NAME_POSIX_ACL_DEFAULT hav= e > the same XATTR_SYSTEM_PREFIX prefix; don't check for the same prefix > repeatedly. >=20 > Signed-off-by: Andreas Gruenbacher > Reviewed-by: Steve French > --- > =C2=A0fs/xattr.c | 29 +++++++++++++++++++++++------ > =C2=A01 file changed, 23 insertions(+), 6 deletions(-) >=20 > diff --git a/fs/xattr.c b/fs/xattr.c > index 4beafc4..61ac218 100644 > --- a/fs/xattr.c > +++ b/fs/xattr.c > @@ -295,6 +295,16 @@ out: > =C2=A0} > =C2=A0EXPORT_SYMBOL_GPL(vfs_removexattr); > =C2=A0 > +static void > +fix_xattr_from_user(const char *kname, void *kvalue, size_t size) > +{ > + if (strncmp(kname, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN)) > + return; > + kname +=3D XATTR_SYSTEM_PREFIX_LEN; > + if (!strcmp(kname, XATTR_POSIX_ACL_ACCESS) || > + =C2=A0=C2=A0=C2=A0=C2=A0!strcmp(kname, XATTR_POSIX_ACL_DEFAULT)) > + posix_acl_fix_xattr_from_user(kvalue, size); > +} > =C2=A0 > =C2=A0/* > =C2=A0 * Extended attribute SET operations > @@ -329,9 +339,7 @@ setxattr(struct dentry *d, const char __user *nam= e, const void __user *value, > =C2=A0 error =3D -EFAULT; > =C2=A0 goto out; > =C2=A0 } > - if ((strcmp(kname, XATTR_NAME_POSIX_ACL_ACCESS) =3D=3D 0) || > - =C2=A0=C2=A0=C2=A0=C2=A0(strcmp(kname, XATTR_NAME_POSIX_ACL_DEFAUL= T) =3D=3D 0)) > - posix_acl_fix_xattr_from_user(kvalue, size); > + fix_xattr_from_user(kname, kvalue, size); > =C2=A0 } > =C2=A0 > =C2=A0 error =3D vfs_setxattr(d, kname, kvalue, size, flags); > @@ -396,6 +404,17 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char _= _user *, name, > =C2=A0 return error; > =C2=A0} > =C2=A0 > +static void > +fix_xattr_to_user(const char *kname, void *kvalue, size_t size) > +{ > + if (strncmp(kname, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN)) > + return; > + kname +=3D XATTR_SYSTEM_PREFIX_LEN; > + if (!strcmp(kname, XATTR_POSIX_ACL_ACCESS) || > + =C2=A0=C2=A0=C2=A0=C2=A0!strcmp(kname, XATTR_POSIX_ACL_DEFAULT)) > + posix_acl_fix_xattr_to_user(kvalue, size); > +} > + > =C2=A0/* > =C2=A0 * Extended attribute GET operations > =C2=A0 */ > @@ -426,9 +445,7 @@ getxattr(struct dentry *d, const char __user *nam= e, void __user *value, > =C2=A0 > =C2=A0 error =3D vfs_getxattr(d, kname, kvalue, size); > =C2=A0 if (error > 0) { > - if ((strcmp(kname, XATTR_NAME_POSIX_ACL_ACCESS) =3D=3D 0) || > - =C2=A0=C2=A0=C2=A0=C2=A0(strcmp(kname, XATTR_NAME_POSIX_ACL_DEFAUL= T) =3D=3D 0)) > - posix_acl_fix_xattr_to_user(kvalue, size); > + fix_xattr_to_user(kname, kvalue, size); > =C2=A0 if (size && copy_to_user(value, kvalue, error)) > =C2=A0 error =3D -EFAULT; > =C2=A0 } else if (error =3D=3D -ERANGE && size >=3D XATTR_SIZE_MAX) { Might be nice to move this one to the head of the queue. I don't see it as being a controversial change, and it could go in before the rest of the patches. Reviewed-by: Jeff Layton -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755397AbcGEPi4 (ORCPT ); Tue, 5 Jul 2016 11:38:56 -0400 Received: from mail-qt0-f170.google.com ([209.85.216.170]:36432 "EHLO mail-qt0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755357AbcGEPix (ORCPT ); Tue, 5 Jul 2016 11:38:53 -0400 Message-ID: <1467733130.3800.36.camel@redhat.com> Subject: Re: [PATCH v23 10/22] posix_acl: Improve xattr fixup code From: Jeff Layton To: Andreas Gruenbacher , Alexander Viro Cc: Christoph Hellwig , "Theodore Ts'o" , Andreas Dilger , "J. Bruce Fields" , Trond Myklebust , Anna Schumaker , Dave Chinner , linux-ext4@vger.kernel.org, xfs@oss.sgi.com, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-nfs@vger.kernel.org, linux-cifs@vger.kernel.org, linux-api@vger.kernel.org Date: Tue, 05 Jul 2016 11:38:50 -0400 In-Reply-To: <1467294433-3222-11-git-send-email-agruenba@redhat.com> References: <1467294433-3222-1-git-send-email-agruenba@redhat.com> <1467294433-3222-11-git-send-email-agruenba@redhat.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.18.5.2 (3.18.5.2-1.fc23) Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 2016-06-30 at 15:47 +0200, Andreas Gruenbacher wrote: > Both XATTR_NAME_POSIX_ACL_ACCESS and XATTR_NAME_POSIX_ACL_DEFAULT have > the same XATTR_SYSTEM_PREFIX prefix; don't check for the same prefix > repeatedly. > > Signed-off-by: Andreas Gruenbacher > Reviewed-by: Steve French > --- >  fs/xattr.c | 29 +++++++++++++++++++++++------ >  1 file changed, 23 insertions(+), 6 deletions(-) > > diff --git a/fs/xattr.c b/fs/xattr.c > index 4beafc4..61ac218 100644 > --- a/fs/xattr.c > +++ b/fs/xattr.c > @@ -295,6 +295,16 @@ out: >  } >  EXPORT_SYMBOL_GPL(vfs_removexattr); >   > +static void > +fix_xattr_from_user(const char *kname, void *kvalue, size_t size) > +{ > + if (strncmp(kname, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN)) > + return; > + kname += XATTR_SYSTEM_PREFIX_LEN; > + if (!strcmp(kname, XATTR_POSIX_ACL_ACCESS) || > +     !strcmp(kname, XATTR_POSIX_ACL_DEFAULT)) > + posix_acl_fix_xattr_from_user(kvalue, size); > +} >   >  /* >   * Extended attribute SET operations > @@ -329,9 +339,7 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value, >   error = -EFAULT; >   goto out; >   } > - if ((strcmp(kname, XATTR_NAME_POSIX_ACL_ACCESS) == 0) || > -     (strcmp(kname, XATTR_NAME_POSIX_ACL_DEFAULT) == 0)) > - posix_acl_fix_xattr_from_user(kvalue, size); > + fix_xattr_from_user(kname, kvalue, size); >   } >   >   error = vfs_setxattr(d, kname, kvalue, size, flags); > @@ -396,6 +404,17 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name, >   return error; >  } >   > +static void > +fix_xattr_to_user(const char *kname, void *kvalue, size_t size) > +{ > + if (strncmp(kname, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN)) > + return; > + kname += XATTR_SYSTEM_PREFIX_LEN; > + if (!strcmp(kname, XATTR_POSIX_ACL_ACCESS) || > +     !strcmp(kname, XATTR_POSIX_ACL_DEFAULT)) > + posix_acl_fix_xattr_to_user(kvalue, size); > +} > + >  /* >   * Extended attribute GET operations >   */ > @@ -426,9 +445,7 @@ getxattr(struct dentry *d, const char __user *name, void __user *value, >   >   error = vfs_getxattr(d, kname, kvalue, size); >   if (error > 0) { > - if ((strcmp(kname, XATTR_NAME_POSIX_ACL_ACCESS) == 0) || > -     (strcmp(kname, XATTR_NAME_POSIX_ACL_DEFAULT) == 0)) > - posix_acl_fix_xattr_to_user(kvalue, size); > + fix_xattr_to_user(kname, kvalue, size); >   if (size && copy_to_user(value, kvalue, error)) >   error = -EFAULT; >   } else if (error == -ERANGE && size >= XATTR_SIZE_MAX) { Might be nice to move this one to the head of the queue. I don't see it as being a controversial change, and it could go in before the rest of the patches. Reviewed-by: Jeff Layton From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 646FB7CDF for ; Tue, 5 Jul 2016 10:39:01 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C496AAC001 for ; Tue, 5 Jul 2016 08:38:57 -0700 (PDT) Received: from mail-qt0-f172.google.com (mail-qt0-f172.google.com [209.85.216.172]) by cuda.sgi.com with ESMTP id 7BuNUPIhIBgDpotF (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for ; Tue, 05 Jul 2016 08:38:52 -0700 (PDT) Received: by mail-qt0-f172.google.com with SMTP id m2so102823398qtd.1 for ; Tue, 05 Jul 2016 08:38:52 -0700 (PDT) Message-ID: <1467733130.3800.36.camel@redhat.com> Subject: Re: [PATCH v23 10/22] posix_acl: Improve xattr fixup code From: Jeff Layton Date: Tue, 05 Jul 2016 11:38:50 -0400 In-Reply-To: <1467294433-3222-11-git-send-email-agruenba@redhat.com> References: <1467294433-3222-1-git-send-email-agruenba@redhat.com> <1467294433-3222-11-git-send-email-agruenba@redhat.com> Mime-Version: 1.0 List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: Andreas Gruenbacher , Alexander Viro Cc: "J. Bruce Fields" , linux-nfs@vger.kernel.org, Theodore Ts'o , linux-cifs@vger.kernel.org, linux-api@vger.kernel.org, Trond Myklebust , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, Christoph Hellwig , Andreas Dilger , linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, Anna Schumaker T24gVGh1LCAyMDE2LTA2LTMwIGF0IDE1OjQ3ICswMjAwLCBBbmRyZWFzIEdydWVuYmFjaGVyIHdy b3RlOgo+IEJvdGggWEFUVFJfTkFNRV9QT1NJWF9BQ0xfQUNDRVNTIGFuZCBYQVRUUl9OQU1FX1BP U0lYX0FDTF9ERUZBVUxUIGhhdmUKPiB0aGUgc2FtZSBYQVRUUl9TWVNURU1fUFJFRklYIHByZWZp eDsgZG9uJ3QgY2hlY2sgZm9yIHRoZSBzYW1lIHByZWZpeAo+IHJlcGVhdGVkbHkuCj4gCj4gU2ln bmVkLW9mZi1ieTogQW5kcmVhcyBHcnVlbmJhY2hlciA8YWdydWVuYmFAcmVkaGF0LmNvbT4KPiBS ZXZpZXdlZC1ieTogU3RldmUgRnJlbmNoIDxzdGV2ZS5mcmVuY2hAcHJpbWFyeWRhdGEuY29tPgo+ IC0tLQo+IMKgZnMveGF0dHIuYyB8IDI5ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4g wqAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZnMveGF0dHIuYyBiL2ZzL3hhdHRyLmMKPiBpbmRleCA0YmVhZmM0Li42MWFj MjE4IDEwMDY0NAo+IC0tLSBhL2ZzL3hhdHRyLmMKPiArKysgYi9mcy94YXR0ci5jCj4gQEAgLTI5 NSw2ICsyOTUsMTYgQEAgb3V0Ogo+IMKgfQo+IMKgRVhQT1JUX1NZTUJPTF9HUEwodmZzX3JlbW92 ZXhhdHRyKTsKPiDCoAo+ICtzdGF0aWMgdm9pZAo+ICtmaXhfeGF0dHJfZnJvbV91c2VyKGNvbnN0 IGNoYXIgKmtuYW1lLCB2b2lkICprdmFsdWUsIHNpemVfdCBzaXplKQo+ICt7Cj4gKwlpZiAoc3Ry bmNtcChrbmFtZSwgWEFUVFJfU1lTVEVNX1BSRUZJWCwgWEFUVFJfU1lTVEVNX1BSRUZJWF9MRU4p KQo+ICsJCXJldHVybjsKPiArCWtuYW1lICs9IFhBVFRSX1NZU1RFTV9QUkVGSVhfTEVOOwo+ICsJ aWYgKCFzdHJjbXAoa25hbWUsIFhBVFRSX1BPU0lYX0FDTF9BQ0NFU1MpIHx8Cj4gKwnCoMKgwqDC oCFzdHJjbXAoa25hbWUsIFhBVFRSX1BPU0lYX0FDTF9ERUZBVUxUKSkKPiArCQlwb3NpeF9hY2xf Zml4X3hhdHRyX2Zyb21fdXNlcihrdmFsdWUsIHNpemUpOwo+ICt9Cj4gwqAKPiDCoC8qCj4gwqAg KiBFeHRlbmRlZCBhdHRyaWJ1dGUgU0VUIG9wZXJhdGlvbnMKPiBAQCAtMzI5LDkgKzMzOSw3IEBA IHNldHhhdHRyKHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgX191c2VyICpuYW1lLCBjb25z dCB2b2lkIF9fdXNlciAqdmFsdWUsCj4gwqAJCQllcnJvciA9IC1FRkFVTFQ7Cj4gwqAJCQlnb3Rv IG91dDsKPiDCoAkJfQo+IC0JCWlmICgoc3RyY21wKGtuYW1lLCBYQVRUUl9OQU1FX1BPU0lYX0FD TF9BQ0NFU1MpID09IDApIHx8Cj4gLQkJwqDCoMKgwqAoc3RyY21wKGtuYW1lLCBYQVRUUl9OQU1F X1BPU0lYX0FDTF9ERUZBVUxUKSA9PSAwKSkKPiAtCQkJcG9zaXhfYWNsX2ZpeF94YXR0cl9mcm9t X3VzZXIoa3ZhbHVlLCBzaXplKTsKPiArCQlmaXhfeGF0dHJfZnJvbV91c2VyKGtuYW1lLCBrdmFs dWUsIHNpemUpOwo+IMKgCX0KPiDCoAo+IMKgCWVycm9yID0gdmZzX3NldHhhdHRyKGQsIGtuYW1l LCBrdmFsdWUsIHNpemUsIGZsYWdzKTsKPiBAQCAtMzk2LDYgKzQwNCwxNyBAQCBTWVNDQUxMX0RF RklORTUoZnNldHhhdHRyLCBpbnQsIGZkLCBjb25zdCBjaGFyIF9fdXNlciAqLCBuYW1lLAo+IMKg CXJldHVybiBlcnJvcjsKPiDCoH0KPiDCoAo+ICtzdGF0aWMgdm9pZAo+ICtmaXhfeGF0dHJfdG9f dXNlcihjb25zdCBjaGFyICprbmFtZSwgdm9pZCAqa3ZhbHVlLCBzaXplX3Qgc2l6ZSkKPiArewo+ ICsJaWYgKHN0cm5jbXAoa25hbWUsIFhBVFRSX1NZU1RFTV9QUkVGSVgsIFhBVFRSX1NZU1RFTV9Q UkVGSVhfTEVOKSkKPiArCQlyZXR1cm47Cj4gKwlrbmFtZSArPSBYQVRUUl9TWVNURU1fUFJFRklY X0xFTjsKPiArCWlmICghc3RyY21wKGtuYW1lLCBYQVRUUl9QT1NJWF9BQ0xfQUNDRVNTKSB8fAo+ ICsJwqDCoMKgwqAhc3RyY21wKGtuYW1lLCBYQVRUUl9QT1NJWF9BQ0xfREVGQVVMVCkpCj4gKwkJ cG9zaXhfYWNsX2ZpeF94YXR0cl90b191c2VyKGt2YWx1ZSwgc2l6ZSk7Cj4gK30KPiArCj4gwqAv Kgo+IMKgICogRXh0ZW5kZWQgYXR0cmlidXRlIEdFVCBvcGVyYXRpb25zCj4gwqAgKi8KPiBAQCAt NDI2LDkgKzQ0NSw3IEBAIGdldHhhdHRyKHN0cnVjdCBkZW50cnkgKmQsIGNvbnN0IGNoYXIgX191 c2VyICpuYW1lLCB2b2lkIF9fdXNlciAqdmFsdWUsCj4gwqAKPiDCoAllcnJvciA9IHZmc19nZXR4 YXR0cihkLCBrbmFtZSwga3ZhbHVlLCBzaXplKTsKPiDCoAlpZiAoZXJyb3IgPiAwKSB7Cj4gLQkJ aWYgKChzdHJjbXAoa25hbWUsIFhBVFRSX05BTUVfUE9TSVhfQUNMX0FDQ0VTUykgPT0gMCkgfHwK PiAtCQnCoMKgwqDCoChzdHJjbXAoa25hbWUsIFhBVFRSX05BTUVfUE9TSVhfQUNMX0RFRkFVTFQp ID09IDApKQo+IC0JCQlwb3NpeF9hY2xfZml4X3hhdHRyX3RvX3VzZXIoa3ZhbHVlLCBzaXplKTsK PiArCQlmaXhfeGF0dHJfdG9fdXNlcihrbmFtZSwga3ZhbHVlLCBzaXplKTsKPiDCoAkJaWYgKHNp emUgJiYgY29weV90b191c2VyKHZhbHVlLCBrdmFsdWUsIGVycm9yKSkKPiDCoAkJCWVycm9yID0g LUVGQVVMVDsKPiDCoAl9IGVsc2UgaWYgKGVycm9yID09IC1FUkFOR0UgJiYgc2l6ZSA+PSBYQVRU Ul9TSVpFX01BWCkgewoKTWlnaHQgYmUgbmljZSB0byBtb3ZlIHRoaXMgb25lIHRvIHRoZSBoZWFk IG9mIHRoZSBxdWV1ZS4gSSBkb24ndCBzZWUgaXQKYXMgYmVpbmcgYSBjb250cm92ZXJzaWFsIGNo YW5nZSwgYW5kIGl0IGNvdWxkIGdvIGluIGJlZm9yZSB0aGUgcmVzdCBvZgp0aGUgcGF0Y2hlcy4K ClJldmlld2VkLWJ5OiBKZWZmIExheXRvbiA8amxheXRvbkByZWRoYXQuY29tPgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KeGZzIG1haWxpbmcgbGlzdAp4 ZnNAb3NzLnNnaS5jb20KaHR0cDovL29zcy5zZ2kuY29tL21haWxtYW4vbGlzdGluZm8veGZzCg==