linux/fs/ocfs2
Jan Kara 7f5aa21508 jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()
If we race with commit code setting i_transaction to NULL, we could
possibly dereference it.  Proper locking requires the journal pointer
(to access journal->j_list_lock), which we don't have.  So we have to
change the prototype of the function so that filesystem passes us the
journal pointer.  Also add a more detailed comment about why the
function jbd2_journal_begin_ordered_truncate() does what it does and
how it should be used.

Thanks to Dan Carpenter <error27@gmail.com> for pointing to the
suspitious code.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Acked-by: Joel Becker <joel.becker@oracle.com>
CC: linux-ext4@vger.kernel.org
CC: ocfs2-devel@oss.oracle.com
CC: mfasheh@suse.de
CC: Dan Carpenter <error27@gmail.com>
2009-02-10 11:15:34 -05:00
..
cluster trivial: fix then -> than typos in comments and documentation 2009-01-06 11:28:06 +01:00
dlm Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2 2009-01-05 18:32:43 -08:00
Kconfig fs/Kconfig: move ocfs2 out 2009-01-22 13:15:54 +03:00
Makefile ocfs2: Add the underlying blockcheck code. 2009-01-05 08:40:31 -08:00
acl.c ocfs2: add ocfs2_init_acl in mknod 2009-01-05 08:34:20 -08:00
acl.h ocfs2: add ocfs2_init_acl in mknod 2009-01-05 08:34:20 -08:00
alloc.c ocfs2: add quota call to ocfs2_remove_btree_range() 2009-02-02 14:20:20 -08:00
alloc.h ocfs2: Create ocfs2_xattr_value_buf. 2009-01-05 08:40:32 -08:00
aops.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
aops.h
blockcheck.c ocfs2: One more hamming code optimization. 2009-01-05 08:40:35 -08:00
blockcheck.h ocfs2: Add the underlying blockcheck code. 2009-01-05 08:40:31 -08:00
buffer_head_io.c ocfs2: Use BH_JBDPrivateStart instead of BH_Unshadow 2009-01-05 08:40:24 -08:00
buffer_head_io.h ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08:00
dcache.c ocfs2: Push out dropping of dentry lock to ocfs2_wq 2009-02-02 14:20:16 -08:00
dcache.h ocfs2: Push out dropping of dentry lock to ocfs2_wq 2009-02-02 14:20:16 -08:00
dir.c ocfs2: Checksum and ECC for directory blocks. 2009-01-05 08:40:34 -08:00
dir.h ocfs2: Checksum and ECC for directory blocks. 2009-01-05 08:40:34 -08:00
dlmglue.c ocfs2: Wakeup the downconvert thread after a successful cancel convert 2009-02-02 14:20:19 -08:00
dlmglue.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
export.c
export.h
extent_map.c ocfs2: Wrap virtual block reads in ocfs2_read_virt_blocks() 2009-01-05 08:36:54 -08:00
extent_map.h ocfs2: Wrap virtual block reads in ocfs2_read_virt_blocks() 2009-01-05 08:36:54 -08:00
file.c remove lots of double-semicolons 2009-01-08 08:31:14 -08:00
file.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
heartbeat.c
heartbeat.h
inode.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
inode.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
ioctl.c
ioctl.h
journal.c ocfs2: Checksum and ECC for directory blocks. 2009-01-05 08:40:34 -08:00
journal.h jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate() 2009-02-10 11:15:34 -05:00
localalloc.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
localalloc.h
locks.c
locks.h
mmap.c
mmap.h
namei.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
namei.h
ocfs1_fs_compat.h
ocfs2.h ocfs2: Push out dropping of dentry lock to ocfs2_wq 2009-02-02 14:20:16 -08:00
ocfs2_fs.h ocfs2: Enable metadata checksums. 2009-01-05 08:40:34 -08:00
ocfs2_lockid.h ocfs2: Implementation of local and global quota file handling 2009-01-05 08:40:23 -08:00
ocfs2_lockingver.h
quota.h ocfs2: Fix ocfs2_read_quota_block() error handling. 2009-01-05 08:40:24 -08:00
quota_global.c ocfs2: Fix possible deadlock in ocfs2_write_dquot() 2009-02-02 14:20:17 -08:00
quota_local.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
resize.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
resize.h
slot_map.c ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08:00
slot_map.h
stack_o2cb.c
stack_user.c ocfs2: initialize stack_user lvbptr 2008-12-01 14:46:39 -08:00
stackglue.c
stackglue.h
suballoc.c ocfs2: Use metadata-specific ocfs2_journal_access_*() functions. 2009-01-05 08:40:32 -08:00
suballoc.h ocfs2: Validate metadata only when it's read from disk. 2009-01-05 08:36:53 -08:00
super.c ocfs2: Push out dropping of dentry lock to ocfs2_wq 2009-02-02 14:20:16 -08:00
super.h
symlink.c ocfs2: Wrap inode block reads in a dedicated function. 2009-01-05 08:36:52 -08:00
symlink.h
sysfile.c
sysfile.h
uptodate.c
uptodate.h
ver.c
ver.h
xattr.c ocfs2: Access the xattr bucket only before modifying it. 2009-02-02 14:20:18 -08:00
xattr.h ocfs2: Create ocfs2_xattr_value_buf. 2009-01-05 08:40:32 -08:00