From 612f92771a6d0a64f79956459b4b33f3a5e15771 Mon Sep 17 00:00:00 2001 From: Miao Xie Date: Sun, 11 Sep 2011 10:52:25 -0400 Subject: [PATCH] --- yaml --- r: 263737 b: refs/heads/master c: a39f75214358d715efa21e2bccf5a709d8649144 h: refs/heads/master i: 263735: d96ff3f87f29437c6e93c450e90fa2f4b9ea9af2 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/inode.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index c17bd6958641..c3012263b4ec 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0c1a98c81413e00a6c379d898e06a09350d31926 +refs/heads/master: a39f75214358d715efa21e2bccf5a709d8649144 diff --git a/trunk/fs/btrfs/inode.c b/trunk/fs/btrfs/inode.c index c257af2ce9cb..b94c0da3b43f 100644 --- a/trunk/fs/btrfs/inode.c +++ b/trunk/fs/btrfs/inode.c @@ -1786,7 +1786,7 @@ static int btrfs_finish_ordered_io(struct inode *inode, u64 start, u64 end) &ordered_extent->list); ret = btrfs_ordered_update_i_size(inode, 0, ordered_extent); - if (!ret) { + if (!ret || !test_bit(BTRFS_ORDERED_PREALLOC, &ordered_extent->flags)) { ret = btrfs_update_inode(trans, root, inode); BUG_ON(ret); } @@ -5788,7 +5788,7 @@ static void btrfs_endio_direct_write(struct bio *bio, int err) add_pending_csums(trans, inode, ordered->file_offset, &ordered->list); ret = btrfs_ordered_update_i_size(inode, 0, ordered); - if (!ret) + if (!ret || !test_bit(BTRFS_ORDERED_PREALLOC, &ordered->flags)) btrfs_update_inode(trans, root, inode); ret = 0; out_unlock: