summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/qgroup.c
diff options
context:
space:
mode:
authorChris Mason <clm@fb.com>2014-01-09 17:28:00 -0800
committerChris Mason <clm@fb.com>2014-01-29 07:06:30 -0800
commit90d3e592e99b8e374ead2b45148abf506493a959 (patch)
tree9e2b61f449524e988dacb04a770b87a2e3fddc23 /fs/btrfs/qgroup.c
parent514ac8ad8793a097c0c9d89202c642479d6dfa34 (diff)
downloadlinux-stable-90d3e592e99b8e374ead2b45148abf506493a959.tar.gz
linux-stable-90d3e592e99b8e374ead2b45148abf506493a959.tar.bz2
linux-stable-90d3e592e99b8e374ead2b45148abf506493a959.zip
Btrfs: setup inode location during btrfs_init_inode_locked
We have a race during inode init because the BTRFS_I(inode)->location is setup after the inode hash table lock is dropped. btrfs_find_actor uses the location field, so our search might not find an existing inode in the hash table if we race with the inode init code. This commit changes things to setup the location field sooner. Also the find actor now uses only the location objectid to match inodes. For inode hashing, we just need a unique and stable test, it doesn't have to reflect the inode numbers we show to userland. Signed-off-by: Chris Mason <clm@fb.com> CC: stable@vger.kernel.org
Diffstat (limited to 'fs/btrfs/qgroup.c')
0 files changed, 0 insertions, 0 deletions