summaryrefslogtreecommitdiff
path: root/fs/reiserfs/super.c
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2014-08-04 19:51:47 -0400
committerJan Kara <jack@suse.cz>2014-08-05 23:18:38 +0200
commit27d0e5bc85f3341b9ba66f0c23627cf9d7538c9d (patch)
treee981aaf33962bf22bdc70a83287434e77c3188e9 /fs/reiserfs/super.c
parent3f1be4f9c9dc926c1b96f14f88e91b8b0d1f88fd (diff)
downloadlinux-next-27d0e5bc85f3341b9ba66f0c23627cf9d7538c9d.tar.gz
reiserfs: fix corruption introduced by balance_leaf refactor
Commits f1f007c308e (reiserfs: balance_leaf refactor, pull out balance_leaf_insert_left) and cf22df182bf (reiserfs: balance_leaf refactor, pull out balance_leaf_paste_left) missed that the `body' pointer was getting repositioned. Subsequent users of the pointer would expect it to be repositioned, and as a result, parts of the tree would get overwritten. The most common observed corruption is indirect block pointers being overwritten. Since the body value isn't actually used anymore in the called routines, we can pass back the offset it should be shifted. We constify the body and ih pointers in the balance_leaf as a mostly-free preventative measure. Cc: <stable@vger.kernel.org> # 3.16 Reported-and-tested-by: Jeff Chua <jeff.chua.linux@gmail.com> Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/reiserfs/super.c')
0 files changed, 0 insertions, 0 deletions