ext4: fix setting of referenced bit in ext4_es_lookup_extent()
authorJan Kara <jack@suse.cz>
Thu, 10 Mar 2016 03:26:55 +0000 (22:26 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 10 Mar 2016 03:26:55 +0000 (22:26 -0500)
We were setting referenced bit on the extent structure we return from
ext4_es_lookup_extent() which is just a private structure on stack. Thus
setting had no effect. Set the bit in the structure in the status tree
instead.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/extents_status.c

index ac748b3af1c1ca2f242ce99b3a260850ae150fc9..e38b987ac7f5f709abb8ea1c8fb9f83ca32ce723 100644 (file)
@@ -823,8 +823,8 @@ out:
                es->es_lblk = es1->es_lblk;
                es->es_len = es1->es_len;
                es->es_pblk = es1->es_pblk;
-               if (!ext4_es_is_referenced(es))
-                       ext4_es_set_referenced(es);
+               if (!ext4_es_is_referenced(es1))
+                       ext4_es_set_referenced(es1);
                stats->es_stats_cache_hits++;
        } else {
                stats->es_stats_cache_misses++;