]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
ocfs2: Don't printk the error when listing too many xattrs.
authorTao Ma <tao.ma@oracle.com>
Sun, 3 May 2009 21:18:09 +0000 (05:18 +0800)
committerJoel Becker <joel.becker@oracle.com>
Tue, 5 May 2009 21:43:24 +0000 (14:43 -0700)
Currently the kernel defines XATTR_LIST_MAX as 65536
in include/linux/limits.h.  This is the largest buffer that is used for
listing xattrs.

But with ocfs2 xattr tree, we actually have no limit for the number.  If
filesystem has more names than can fit in the buffer, the kernel
logs will be pollluted with something like this when listing:

(27738,0):ocfs2_iterate_xattr_buckets:3158 ERROR: status = -34
(27738,0):ocfs2_xattr_tree_list_index_block:3264 ERROR: status = -34

So don't print "ERROR" message as this is not an ocfs2 error.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Joel Becker <joel.becker@oracle.com>
fs/ocfs2/xattr.c

index 15631019dc634561838919310b2566e263f1d8dc..ba320e250747fd01dedcd06a85df0d2e867dbe44 100644 (file)
@@ -3154,7 +3154,7 @@ static int ocfs2_iterate_xattr_buckets(struct inode *inode,
                     le32_to_cpu(bucket_xh(bucket)->xh_entries[0].xe_name_hash));
                if (func) {
                        ret = func(inode, bucket, para);
-                       if (ret)
+                       if (ret && ret != -ERANGE)
                                mlog_errno(ret);
                        /* Fall through to bucket_relse() */
                }
@@ -3261,7 +3261,8 @@ static int ocfs2_xattr_tree_list_index_block(struct inode *inode,
                                                  ocfs2_list_xattr_bucket,
                                                  &xl);
                if (ret) {
-                       mlog_errno(ret);
+                       if (ret != -ERANGE)
+                               mlog_errno(ret);
                        goto out;
                }