summaryrefslogtreecommitdiffstats
path: root/block/blk-wbt.h
diff options
context:
space:
mode:
authorBob Peterson2017-03-16 20:29:13 +0100
committerBob Peterson2017-03-16 20:29:13 +0100
commitcc963a11b67b796c25c5b827b25d2bcc92ce1779 (patch)
treee250b4523abe878bfc06d6d10fc76697b883551b /block/blk-wbt.h
parentgfs2: Don't pack struct lm_lockname (diff)
downloadkernel-qcow2-linux-cc963a11b67b796c25c5b827b25d2bcc92ce1779.tar.gz
kernel-qcow2-linux-cc963a11b67b796c25c5b827b25d2bcc92ce1779.tar.xz
kernel-qcow2-linux-cc963a11b67b796c25c5b827b25d2bcc92ce1779.zip
GFS2: Temporarily zero i_no_addr when creating a dinode
Before this patch i_no_addr was not initialized until after the return from allocating its block. That meant the i_no_addr was temporarily uninitialized storage. Ordinarily that's not a concern, but if inplace_reserve can't find space, it can call try_rgrp_unlink which references i_no_addr as a block to avoid. That can result in unpredictable behavior. More importantly, the trace point in gfs2_alloc_blocks references ip->i_no_addr before it is set, which is misleading when reading the kernel traces. This patch makes it look like the new dinode block was assigned in the name of inode 0 rather than a random inode that's completely unrelated. Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'block/blk-wbt.h')
0 files changed, 0 insertions, 0 deletions