Whamcloud - gitweb
LU-8080 utils: Replace calls to signal with sigaction
[fs/lustre-release.git] / lustre / osd-ldiskfs / osd_iam_lvar.c
index 8223711..688c0b5 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2015, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -200,14 +200,14 @@ static __u32 hash_build0(const char *name, int namelen)
                 struct ldiskfs_dx_hash_info hinfo;
 
                 hinfo.hash_version = LDISKFS_DX_HASH_TEA;
-                hinfo.seed = 0;
+               hinfo.seed = NULL;
                 ldiskfsfs_dirhash(name, namelen, &hinfo);
                 result = hinfo.hash;
                 if (LVAR_HASH_SANDWICH) {
                         __u32 result2;
 
                         hinfo.hash_version = LDISKFS_DX_HASH_TEA;
-                        hinfo.seed = 0;
+                       hinfo.seed = NULL;
                         ldiskfsfs_dirhash(name, namelen, &hinfo);
                         result2 = hinfo.hash;
                         result = (0xfc000000 & result2) | (0x03ffffff & result);
@@ -407,12 +407,12 @@ static int lvar_init(struct iam_leaf *l)
                 struct inode *obj;
 
                 obj = iam_leaf_container(l)->ic_object;
-                CERROR("Wrong magic in node %llu (#%lu): %#x != %#x or "
-                       "wrong used: %d",
-                       (unsigned long long)l->il_bh->b_blocknr, obj->i_ino,
+               CERROR("Wrong magic in node %llu (#%lu): %#x != %#x or "
+                      "wrong used: %d\n",
+                      (unsigned long long)l->il_bh->b_blocknr, obj->i_ino,
                       le16_to_cpu(head->vlh_magic), IAM_LVAR_LEAF_MAGIC,
-                       used);
-                result = -EIO;
+                      used);
+               result = -EIO;
         }
         return result;
 }
@@ -422,7 +422,7 @@ static void lvar_fini(struct iam_leaf *l)
         l->il_entries = l->il_at = NULL;
 }
 
-struct iam_rec *lvar_rec(const struct iam_leaf *l)
+static struct iam_rec *lvar_rec(const struct iam_leaf *l)
 {
         assert_corr(n_at_rec(l));
         return e_rec(n_cur(l));
@@ -1017,23 +1017,32 @@ int iam_lvar_create(struct inode *obj,
 
         sb = obj->i_sb;
         bsize = sb->s_blocksize;
-        root_node = osd_ldiskfs_append(handle, obj, &blknr, &result);
-        leaf_node = osd_ldiskfs_append(handle, obj, &blknr, &result);
-        if (root_node != NULL && leaf_node != NULL) {
-                lvar_root(root_node->b_data, bsize, keysize, ptrsize, recsize);
-                lvar_leaf(leaf_node->b_data, bsize, keysize, ptrsize, recsize);
-                ldiskfs_mark_inode_dirty(handle, obj);
-                result = ldiskfs_journal_dirty_metadata(handle, root_node);
-                if (result == 0)
-                        result = ldiskfs_journal_dirty_metadata(handle, leaf_node);
-                if (result != 0)
-                        ldiskfs_std_error(sb, result);
-        }
-        brelse(leaf_node);
-        brelse(root_node);
-        return result;
+       root_node = osd_ldiskfs_append(handle, obj, &blknr);
+       if (IS_ERR(root_node))
+               GOTO(out, result = PTR_ERR(root_node));
+
+       leaf_node = osd_ldiskfs_append(handle, obj, &blknr);
+       if (IS_ERR(leaf_node))
+               GOTO(out_root, result = PTR_ERR(leaf_node));
+
+       lvar_root(root_node->b_data, bsize, keysize, ptrsize, recsize);
+       lvar_leaf(leaf_node->b_data, bsize, keysize, ptrsize, recsize);
+       ldiskfs_mark_inode_dirty(handle, obj);
+       result = ldiskfs_handle_dirty_metadata(handle, NULL, root_node);
+       if (result == 0)
+               result = ldiskfs_handle_dirty_metadata(handle, NULL, leaf_node);
+       if (result != 0)
+               ldiskfs_std_error(sb, result);
+
+       brelse(leaf_node);
+
+       GOTO(out_root, result);
+
+out_root:
+       brelse(root_node);
+out:
+       return result;
 }
-EXPORT_SYMBOL(iam_lvar_create);
 
 static struct iam_operations lvar_ops = {
         .id_root_ptr    = lvar_root_ptr,