In lock_stripe_add() we're caching the bucket for the stripe hash table
just for a single call to dereference the stripe hash.

If we just directly call rbio_bucket() we can safe the pointless local
variable.

Also move the dereferencing of the stripe hash outside of the variable
declaration block to not break over the 80 characters limit.

Signed-off-by: Johannes Thumshirn <jthumsh...@suse.de>
---
 fs/btrfs/raid56.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/raid56.c b/fs/btrfs/raid56.c
index 9e8a6c447e51..530719ff8185 100644
--- a/fs/btrfs/raid56.c
+++ b/fs/btrfs/raid56.c
@@ -671,8 +671,7 @@ static struct page *rbio_qstripe_page(struct btrfs_raid_bio 
*rbio, int index)
  */
 static noinline int lock_stripe_add(struct btrfs_raid_bio *rbio)
 {
-       int bucket = rbio_bucket(rbio);
-       struct btrfs_stripe_hash *h = rbio->fs_info->stripe_hash_table->table + 
bucket;
+       struct btrfs_stripe_hash *h;
        struct btrfs_raid_bio *cur;
        struct btrfs_raid_bio *pending;
        unsigned long flags;
@@ -680,6 +679,8 @@ static noinline int lock_stripe_add(struct btrfs_raid_bio 
*rbio)
        struct btrfs_raid_bio *cache_drop = NULL;
        int ret = 0;
 
+       h = rbio->fs_info->stripe_hash_table->table + rbio_bucket(rbio);
+
        spin_lock_irqsave(&h->lock, flags);
        list_for_each_entry(cur, &h->hash_list, hash_list) {
                if (cur->bbio->raid_map[0] != rbio->bbio->raid_map[0])
-- 
2.16.4

Reply via email to