summaryrefslogtreecommitdiff
path: root/fs/nfsd
diff options
context:
space:
mode:
authorJosef Bacik <jbacik@fb.com>2017-11-17 14:50:46 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-12-05 11:26:30 +0100
commit28580e75734b8bfc10d0c23ba026737c71c551c8 (patch)
tree2fdab1c30300ff53dbf01e2d1c43046a3bd3faf8 /fs/nfsd
parentbe75ad849b9f3b0512e976a81e31a0beea1419ab (diff)
btrfs: clear space cache inode generation always
commit 8e138e0d92c6c9d3d481674fb14e3439b495be37 upstream. We discovered a box that had double allocations, and suspected the space cache may be to blame. While auditing the write out path I noticed that if we've already setup the space cache we will just carry on. This means that any error we hit after cache_save_setup before we go to actually write the cache out we won't reset the inode generation, so whatever was already written will be considered correct, except it'll be stale. Fix this by _always_ resetting the generation on the block group inode, this way we only ever have valid or invalid cache. With this patch I was no longer able to reproduce cache corruption with dm-log-writes and my bpf error injection tool. Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/nfsd')
0 files changed, 0 insertions, 0 deletions