diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index 6aa92d0e68764a7b4ef0ab7de0f34003570f71f8..1d65f13f458c402c608cc3ca0b94bbf1c7e9806c 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -1922,11 +1922,10 @@ nfsd_set_posix_acl(struct svc_fh *fhp, int type, struct posix_acl *acl) value = kmalloc(size, GFP_KERNEL); if (!value) return -ENOMEM; - size = posix_acl_to_xattr(acl, value, size); - if (size < 0) { - error = size; + error = posix_acl_to_xattr(acl, value, size); + if (error < 0) goto getout; - } + size = error; } else size = 0;