]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/ocfs2/xattr.c
Merge remote-tracking branch 'asoc/fix/dapm' into asoc-linus
[karo-tx-linux.git] / fs / ocfs2 / xattr.c
index 889f3796a0d732638ce8d76fe9bf0b0c484eb7e0..ebfdea78659b1bda5a93674837e8f818c2503d44 100644 (file)
@@ -499,30 +499,24 @@ static int ocfs2_validate_xattr_block(struct super_block *sb,
         */
 
        if (!OCFS2_IS_VALID_XATTR_BLOCK(xb)) {
-               ocfs2_error(sb,
-                           "Extended attribute block #%llu has bad "
-                           "signature %.*s",
-                           (unsigned long long)bh->b_blocknr, 7,
-                           xb->xb_signature);
-               return -EINVAL;
+               return ocfs2_error(sb,
+                                  "Extended attribute block #%llu has bad signature %.*s\n",
+                                  (unsigned long long)bh->b_blocknr, 7,
+                                  xb->xb_signature);
        }
 
        if (le64_to_cpu(xb->xb_blkno) != bh->b_blocknr) {
-               ocfs2_error(sb,
-                           "Extended attribute block #%llu has an "
-                           "invalid xb_blkno of %llu",
-                           (unsigned long long)bh->b_blocknr,
-                           (unsigned long long)le64_to_cpu(xb->xb_blkno));
-               return -EINVAL;
+               return ocfs2_error(sb,
+                                  "Extended attribute block #%llu has an invalid xb_blkno of %llu\n",
+                                  (unsigned long long)bh->b_blocknr,
+                                  (unsigned long long)le64_to_cpu(xb->xb_blkno));
        }
 
        if (le32_to_cpu(xb->xb_fs_generation) != OCFS2_SB(sb)->fs_generation) {
-               ocfs2_error(sb,
-                           "Extended attribute block #%llu has an invalid "
-                           "xb_fs_generation of #%u",
-                           (unsigned long long)bh->b_blocknr,
-                           le32_to_cpu(xb->xb_fs_generation));
-               return -EINVAL;
+               return ocfs2_error(sb,
+                                  "Extended attribute block #%llu has an invalid xb_fs_generation of #%u\n",
+                                  (unsigned long long)bh->b_blocknr,
+                                  le32_to_cpu(xb->xb_fs_generation));
        }
 
        return 0;
@@ -3694,11 +3688,10 @@ static int ocfs2_xattr_get_rec(struct inode *inode,
                el = &eb->h_list;
 
                if (el->l_tree_depth) {
-                       ocfs2_error(inode->i_sb,
-                                   "Inode %lu has non zero tree depth in "
-                                   "xattr tree block %llu\n", inode->i_ino,
-                                   (unsigned long long)eb_bh->b_blocknr);
-                       ret = -EROFS;
+                       ret = ocfs2_error(inode->i_sb,
+                                         "Inode %lu has non zero tree depth in xattr tree block %llu\n",
+                                         inode->i_ino,
+                                         (unsigned long long)eb_bh->b_blocknr);
                        goto out;
                }
        }
@@ -3713,11 +3706,10 @@ static int ocfs2_xattr_get_rec(struct inode *inode,
        }
 
        if (!e_blkno) {
-               ocfs2_error(inode->i_sb, "Inode %lu has bad extent "
-                           "record (%u, %u, 0) in xattr", inode->i_ino,
-                           le32_to_cpu(rec->e_cpos),
-                           ocfs2_rec_clusters(el, rec));
-               ret = -EROFS;
+               ret = ocfs2_error(inode->i_sb, "Inode %lu has bad extent record (%u, %u, 0) in xattr\n",
+                                 inode->i_ino,
+                                 le32_to_cpu(rec->e_cpos),
+                                 ocfs2_rec_clusters(el, rec));
                goto out;
        }
 
@@ -7334,6 +7326,9 @@ static size_t ocfs2_xattr_trusted_list(struct dentry *dentry, char *list,
        const size_t prefix_len = XATTR_TRUSTED_PREFIX_LEN;
        const size_t total_len = prefix_len + name_len + 1;
 
+       if (!capable(CAP_SYS_ADMIN))
+               return 0;
+
        if (list && total_len <= list_size) {
                memcpy(list, XATTR_TRUSTED_PREFIX, prefix_len);
                memcpy(list + prefix_len, name, name_len);