summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/file-item.c
diff options
context:
space:
mode:
authorYan, Zheng2010-05-16 16:49:59 +0200
committerChris Mason2010-05-25 16:34:53 +0200
commit4a500fd178c89b96fa166a2d9e7855df33429841 (patch)
treeb97fe0b0c1cb19388fcf28f77cd74a645ec69a61 /fs/btrfs/file-item.c
parentBtrfs: Metadata reservation for orphan inodes (diff)
downloadkernel-qcow2-linux-4a500fd178c89b96fa166a2d9e7855df33429841.tar.gz
kernel-qcow2-linux-4a500fd178c89b96fa166a2d9e7855df33429841.tar.xz
kernel-qcow2-linux-4a500fd178c89b96fa166a2d9e7855df33429841.zip
Btrfs: Metadata ENOSPC handling for tree log
Previous patches make the allocater return -ENOSPC if there is no unreserved free metadata space. This patch updates tree log code and various other places to propagate/handle the ENOSPC error. Signed-off-by: Yan Zheng <zheng.yan@oracle.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/file-item.c')
-rw-r--r--fs/btrfs/file-item.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index 54a255065aa3..21aead39a76c 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -657,6 +657,9 @@ again:
goto found;
}
ret = PTR_ERR(item);
+ if (ret != -EFBIG && ret != -ENOENT)
+ goto fail_unlock;
+
if (ret == -EFBIG) {
u32 item_size;
/* we found one, but it isn't big enough yet */