Merge 3.15 bugfix for 3.16
authorJ. Bruce Fields <bfields@redhat.com>
Thu, 8 May 2014 18:58:42 +0000 (14:58 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 8 May 2014 18:59:06 +0000 (14:59 -0400)
1  2 
fs/nfsd/nfs4acl.c

diff --combined fs/nfsd/nfs4acl.c
@@@ -36,6 -36,7 +36,6 @@@
  
  #include <linux/slab.h>
  #include <linux/nfs_fs.h>
 -#include <linux/export.h>
  #include "nfsfh.h"
  #include "nfsd.h"
  #include "acl.h"
@@@ -401,8 -402,10 +401,10 @@@ sort_pacl(struct posix_acl *pacl
         * by uid/gid. */
        int i, j;
  
-       if (pacl->a_count <= 4)
-               return; /* no users or groups */
+       /* no users or groups */
+       if (!pacl || pacl->a_count <= 4)
+               return;
        i = 1;
        while (pacl->a_entries[i].e_tag == ACL_USER)
                i++;
@@@ -529,13 -532,12 +531,12 @@@ posix_state_to_acl(struct posix_acl_sta
  
        /*
         * ACLs with no ACEs are treated differently in the inheritable
-        * and effective cases: when there are no inheritable ACEs, we
-        * set a zero-length default posix acl:
+        * and effective cases: when there are no inheritable ACEs,
+        * calls ->set_acl with a NULL ACL structure.
         */
-       if (state->empty && (flags & NFS4_ACL_TYPE_DEFAULT)) {
-               pacl = posix_acl_alloc(0, GFP_KERNEL);
-               return pacl ? pacl : ERR_PTR(-ENOMEM);
-       }
+       if (state->empty && (flags & NFS4_ACL_TYPE_DEFAULT))
+               return NULL;
        /*
         * When there are no effective ACEs, the following will end
         * up setting a 3-element effective posix ACL with all