diff options
Diffstat (limited to 'fs/btrfs/dir-item.c')
-rw-r--r-- | fs/btrfs/dir-item.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/dir-item.c b/fs/btrfs/dir-item.c index ddbe12ae0d63..5247a9a41f08 100644 --- a/fs/btrfs/dir-item.c +++ b/fs/btrfs/dir-item.c | |||
@@ -76,6 +76,9 @@ int btrfs_insert_xattr_item(struct btrfs_trans_handle *trans, | |||
76 | path = btrfs_alloc_path(); | 76 | path = btrfs_alloc_path(); |
77 | if (!path) | 77 | if (!path) |
78 | return -ENOMEM; | 78 | return -ENOMEM; |
79 | if (name_len + data_len + sizeof(struct btrfs_dir_item) > | ||
80 | BTRFS_LEAF_DATA_SIZE(root) - sizeof(struct btrfs_item)) | ||
81 | return -ENOSPC; | ||
79 | 82 | ||
80 | data_size = sizeof(*dir_item) + name_len + data_len; | 83 | data_size = sizeof(*dir_item) + name_len + data_len; |
81 | dir_item = insert_with_overflow(trans, root, path, &key, data_size, | 84 | dir_item = insert_with_overflow(trans, root, path, &key, data_size, |