From: Chris Mason Date: Tue, 3 Apr 2007 15:43:19 +0000 (-0400) Subject: Btrfs: don't wait on uptodate buffers on read X-Git-Tag: firefly_0821_release~15789^2~11^2~55^2~56^2~30^2~622 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9d64272cd3be2aae71f89f7ababbee90a7587b33;p=firefly-linux-kernel-4.4.55.git Btrfs: don't wait on uptodate buffers on read Signed-off-by: Chris Mason --- diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 39b117a57a54..055cd45e802e 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -214,6 +214,8 @@ struct buffer_head *read_tree_block(struct btrfs_root *root, u64 blocknr) bh = btrfs_find_create_tree_block(root, blocknr); if (!bh) return bh; + if (buffer_uptodate(bh)) + goto uptodate; lock_buffer(bh); if (!buffer_uptodate(bh)) { get_bh(bh); @@ -226,6 +228,7 @@ struct buffer_head *read_tree_block(struct btrfs_root *root, u64 blocknr) } else { unlock_buffer(bh); } +uptodate: if (check_tree_block(root, bh)) BUG(); return bh;