linux/fs/nilfs2
Ryusuke Konishi 76068c4ff1 nilfs2: fix buggy behavior seen in enumerating checkpoints
This will fix the weird behavior of lscp command in listing continuously
created checkpoints; the output of lscp is rewinded regularly for the
recent nilfs.  As a result of debugging, a defect was found in
nilfs_cpfile_do_get_cpinfo() function.

Though the function can be repeatedly called to enumerate checkpoints and
it can skip invalid checkpoint entries, the index value was not carried
between successive calls.

The bug has long been present, and came to surface after applying a bugfix
nilfs2-fix-problems-of-memory-allocation-in-ioctl.patch, which increased
frequency of calling the function.  The similar bugfix was already applied
for ``snapshots'' by
nilfs2-fix-gc-failure-on-volumes-keeping-numerous-snapshots.patch.

This fixes the problem by making the index argument bidirectional on the
function.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-04-07 08:31:18 -07:00
..
alloc.c nilfs2: persistent object allocator 2009-04-07 08:31:13 -07:00
alloc.h nilfs2: persistent object allocator 2009-04-07 08:31:13 -07:00
bmap_union.h
bmap.c nilfs2: clean up indirect function calling conventions 2009-04-07 08:31:17 -07:00
bmap.h
btnode.c
btnode.h
btree.c nilfs2: clean up indirect function calling conventions 2009-04-07 08:31:17 -07:00
btree.h
cpfile.c nilfs2: fix buggy behavior seen in enumerating checkpoints 2009-04-07 08:31:18 -07:00
cpfile.h nilfs2: fix gc failure on volumes keeping numerous snapshots 2009-04-07 08:31:17 -07:00
dat.c nilfs2: disk address translator 2009-04-07 08:31:14 -07:00
dat.h nilfs2: disk address translator 2009-04-07 08:31:14 -07:00
dir.c nilfs2: directory entry operations 2009-04-07 08:31:15 -07:00
direct.c nilfs2: clean up indirect function calling conventions 2009-04-07 08:31:17 -07:00
direct.h
file.c nilfs2: fix missed-sync issue for do_sync_mapping_range() 2009-04-07 08:31:15 -07:00
gcdat.c nilfs2: another dat for garbage collection 2009-04-07 08:31:16 -07:00
gcinode.c nilfs2: insert explanations in gcinode file 2009-04-07 08:31:17 -07:00
ifile.c nilfs2: inode map file 2009-04-07 08:31:14 -07:00
ifile.h nilfs2: inode map file 2009-04-07 08:31:14 -07:00
inode.c nilfs2: avoid double error caused by nilfs_transaction_end 2009-04-07 08:31:17 -07:00
ioctl.c nilfs2: clean up indirect function calling conventions 2009-04-07 08:31:17 -07:00
Makefile nilfs2: update makefile and Kconfig 2009-04-07 08:31:16 -07:00
mdt.c nilfs2: avoid double error caused by nilfs_transaction_end 2009-04-07 08:31:17 -07:00
mdt.h nilfs2: meta data file 2009-04-07 08:31:13 -07:00
namei.c nilfs2: avoid double error caused by nilfs_transaction_end 2009-04-07 08:31:17 -07:00
nilfs.h nilfs2: avoid double error caused by nilfs_transaction_end 2009-04-07 08:31:17 -07:00
page.c nilfs2: buffer and page operations 2009-04-07 08:31:13 -07:00
page.h nilfs2: buffer and page operations 2009-04-07 08:31:13 -07:00
recovery.c nilfs2: recovery functions 2009-04-07 08:31:16 -07:00
sb.h
segbuf.c nilfs2: segment buffer 2009-04-07 08:31:15 -07:00
segbuf.h nilfs2: segment buffer 2009-04-07 08:31:15 -07:00
seglist.h nilfs2: segment constructor 2009-04-07 08:31:15 -07:00
segment.c nilfs2: avoid double error caused by nilfs_transaction_end 2009-04-07 08:31:17 -07:00
segment.h nilfs2: fix missed-sync issue for do_sync_mapping_range() 2009-04-07 08:31:15 -07:00
sufile.c nilfs2: segment usage file 2009-04-07 08:31:14 -07:00
sufile.h nilfs2: segment usage file 2009-04-07 08:31:14 -07:00
super.c nilfs2: cleanup nilfs_clear_inode 2009-04-07 08:31:17 -07:00
the_nilfs.c nilfs2: operations for the_nilfs core object 2009-04-07 08:31:15 -07:00
the_nilfs.h nilfs2: avoid double error caused by nilfs_transaction_end 2009-04-07 08:31:17 -07:00