summaryrefslogtreecommitdiffstats
path: root/CREDITS
diff options
context:
space:
mode:
authorArtem Bityutskiy2011-05-31 13:26:07 +0200
committerArtem Bityutskiy2011-06-03 17:12:31 +0200
commit837072377034d0a0b18b851d1ab95676b245cc0a (patch)
tree7020b369ac3373f292d59fe5fd470f73ecb69897 /CREDITS
parentUBIFS: fix memory leak on error path (diff)
downloadkernel-qcow2-linux-837072377034d0a0b18b851d1ab95676b245cc0a.tar.gz
kernel-qcow2-linux-837072377034d0a0b18b851d1ab95676b245cc0a.tar.xz
kernel-qcow2-linux-837072377034d0a0b18b851d1ab95676b245cc0a.zip
UBIFS: fix clean znode counter corruption in error cases
UBIFS maintains per-filesystem and global clean znode counters ('c->clean_zn_cnt' and 'ubifs_clean_zn_cnt'). It is important to maintain correct values there since the shrinker relies on 'ubifs_clean_zn_cnt'. However, in case of failures during commit the counters were corrupted. E.g., if a failure happens in the middle of 'write_index()', then some nodes in the commit list ('c->cnext') are marked as clean, and some are marked as dirty. And the 'ubifs_destroy_tnc_subtree()' frees does not retrun correct count, and we end up with non-zero 'c->clean_zn_cnt' when unmounting. This means that if we have 2 file-sytem and one of them fails, and we unmount it, 'ubifs_clean_zn_cnt' stays incorrect and confuses the shrinker. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'CREDITS')
0 files changed, 0 insertions, 0 deletions