
From: Andreas Gruenbacher <agruen@suse.de>

This patch removes the arbitrary limit of 32 acl entries on ext[23] when
writing acls.  A patch that removes the same check when reding acls is in
BK since 12 March 2004, so all kernels since then are already able to read
large acls.  I think that ten+ months are enough so that we can now also
remove the write limit.

This is the read-limit patch:
http://linux.bkbits.net:8080/linux-2.6/cset%404051e2863UsuQEgAQShmimgBooAXkg?nav=index.html

Even without this patch the xattr block could already contain less space
than needed for the acl, because other attributes might already use up
almost all space.  So this patch does not introduce additional error
conditions.  We have been shipping with this patch the last year (almost).

Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/fs/ext2/acl.c |    2 --
 25-akpm/fs/ext2/acl.h |    1 -
 25-akpm/fs/ext3/acl.c |    2 --
 25-akpm/fs/ext3/acl.h |    1 -
 4 files changed, 6 deletions(-)

diff -puN fs/ext2/acl.c~ext2-ext3-acls-remove-the-number-of-acl-entries-limit fs/ext2/acl.c
--- 25/fs/ext2/acl.c~ext2-ext3-acls-remove-the-number-of-acl-entries-limit	2005-01-23 13:08:37.192560296 -0800
+++ 25-akpm/fs/ext2/acl.c	2005-01-23 13:08:37.200559080 -0800
@@ -255,8 +255,6 @@ ext2_set_acl(struct inode *inode, int ty
 			return -EINVAL;
 	}
  	if (acl) {
-		if (acl->a_count > EXT2_ACL_MAX_ENTRIES)
-			return -EINVAL;
 		value = ext2_acl_to_disk(acl, &size);
 		if (IS_ERR(value))
 			return (int)PTR_ERR(value);
diff -puN fs/ext2/acl.h~ext2-ext3-acls-remove-the-number-of-acl-entries-limit fs/ext2/acl.h
--- 25/fs/ext2/acl.h~ext2-ext3-acls-remove-the-number-of-acl-entries-limit	2005-01-23 13:08:37.193560144 -0800
+++ 25-akpm/fs/ext2/acl.h	2005-01-23 13:08:37.200559080 -0800
@@ -7,7 +7,6 @@
 #include <linux/xattr_acl.h>
 
 #define EXT2_ACL_VERSION	0x0001
-#define EXT2_ACL_MAX_ENTRIES	32
 
 typedef struct {
 	__le16		e_tag;
diff -puN fs/ext3/acl.c~ext2-ext3-acls-remove-the-number-of-acl-entries-limit fs/ext3/acl.c
--- 25/fs/ext3/acl.c~ext2-ext3-acls-remove-the-number-of-acl-entries-limit	2005-01-23 13:08:37.195559840 -0800
+++ 25-akpm/fs/ext3/acl.c	2005-01-23 13:08:37.200559080 -0800
@@ -259,8 +259,6 @@ ext3_set_acl(handle_t *handle, struct in
 			return -EINVAL;
 	}
  	if (acl) {
-		if (acl->a_count > EXT3_ACL_MAX_ENTRIES)
-			return -EINVAL;
 		value = ext3_acl_to_disk(acl, &size);
 		if (IS_ERR(value))
 			return (int)PTR_ERR(value);
diff -puN fs/ext3/acl.h~ext2-ext3-acls-remove-the-number-of-acl-entries-limit fs/ext3/acl.h
--- 25/fs/ext3/acl.h~ext2-ext3-acls-remove-the-number-of-acl-entries-limit	2005-01-23 13:08:37.196559688 -0800
+++ 25-akpm/fs/ext3/acl.h	2005-01-23 13:08:37.201558928 -0800
@@ -7,7 +7,6 @@
 #include <linux/xattr_acl.h>
 
 #define EXT3_ACL_VERSION	0x0001
-#define EXT3_ACL_MAX_ENTRIES	32
 
 typedef struct {
 	__le16		e_tag;
_
