]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/btrfs/dir-item.c
Merge branch 'ufs-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[karo-tx-linux.git] / fs / btrfs / dir-item.c
index b039fe0c751a0ae3788f4dc3710c3ad4e0c365ea..c24d615e3d7f60694d25d6a5c34f2dff45121ca7 100644 (file)
@@ -80,7 +80,8 @@ int btrfs_insert_xattr_item(struct btrfs_trans_handle *trans,
        struct extent_buffer *leaf;
        u32 data_size;
 
-       BUG_ON(name_len + data_len > BTRFS_MAX_XATTR_SIZE(root->fs_info));
+       if (name_len + data_len > BTRFS_MAX_XATTR_SIZE(root->fs_info))
+               return -ENOSPC;
 
        key.objectid = objectid;
        key.type = BTRFS_XATTR_ITEM_KEY;
@@ -120,7 +121,7 @@ int btrfs_insert_xattr_item(struct btrfs_trans_handle *trans,
  */
 int btrfs_insert_dir_item(struct btrfs_trans_handle *trans, struct btrfs_root
                          *root, const char *name, int name_len,
-                         struct inode *dir, struct btrfs_key *location,
+                         struct btrfs_inode *dir, struct btrfs_key *location,
                          u8 type, u64 index)
 {
        int ret = 0;
@@ -174,8 +175,7 @@ second_insert:
        btrfs_release_path(path);
 
        ret2 = btrfs_insert_delayed_dir_index(trans, root->fs_info, name,
-                                             name_len, dir, &disk_key, type,
-                                             index);
+                       name_len, dir, &disk_key, type, index);
 out_free:
        btrfs_free_path(path);
        if (ret)
@@ -468,7 +468,7 @@ int verify_dir_item(struct btrfs_fs_info *fs_info,
 
        if (btrfs_dir_name_len(leaf, dir_item) > namelen) {
                btrfs_crit(fs_info, "invalid dir item name len: %u",
-                      (unsigned)btrfs_dir_data_len(leaf, dir_item));
+                      (unsigned)btrfs_dir_name_len(leaf, dir_item));
                return 1;
        }