Dave Chinner
33ad965dde
Long btree pointers are still 64 bit on disk
...
[XFS] Long btree pointers are still 64 bit on disk
On 32 bit machines with CONFIG_LBD=n, XFS reduces the
in memory size of xfs_fsblock_t to 32 bits so that it
will fit within 32 bit addressing. However, the disk format
for long btree pointers are still 64 bits in size.
The recent btree rewrite failed to take this into account
when initialising new btree blocks, setting sibling pointers
to NULL and checking if they are NULL. Hence checking whether
a 64 bit NULL was the same as a 32 bit NULL was failingi
resulting in NULL sibling pointers failing to be detected
correctly. This showed up as WANT_CORRUPTED_GOTO shutdowns
in xfs_btree_delrec.
Fix this by making all the comparisons and setting of long
pointer btree NULL blocks to the disk format, not the
in memory format. i.e. use NULLDFSBNO.
Reported-by: Alexander Beregalov <[email protected] >
Reported-by: Jacek Luczak <[email protected] >
Reported-by: Danny ter Haar <[email protected] >
Tested-by: Jacek Luczak <[email protected] >
Reviewed-by: Christoph Hellwig <[email protected] >
Signed-off-by: Dave Chinner <[email protected] >
Signed-off-by: Felix Blyakher <[email protected] >
2009-01-21 18:33:46 -06:00
..
9p
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
adfs
affs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
2009-01-05 18:32:06 -08:00
afs
fs: symlink write_begin allocation context fix
2009-01-04 13:33:20 -08:00
autofs
zero i_uid/i_gid on inode allocation
2009-01-05 11:54:28 -05:00
autofs4
autofs4: fix string validation check order
2009-01-06 15:59:23 -08:00
befs
befs: ensure fast symlinks are NUL-terminated
2008-12-31 18:07:40 -05:00
bfs
bfs: check that filesystem fits on the blockdevice
2009-01-06 15:59:31 -08:00
btrfs
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
2009-01-16 09:32:33 -08:00
cifs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
2009-01-05 18:32:06 -08:00
coda
coda: fix fs/coda/sysctl.c build warnings when !CONFIG_SYSCTL
2009-01-08 08:31:01 -08:00
configfs
zero i_uid/i_gid on inode allocation
2009-01-05 11:54:28 -05:00
cramfs
zero i_uid/i_gid on inode allocation
2009-01-05 11:54:28 -05:00
debugfs
debugfs: add helpers for exporting a size_t simple value
2009-01-07 10:00:16 -08:00
devpts
zero i_uid/i_gid on inode allocation
2009-01-05 11:54:28 -05:00
dlm
dlm: change rsbtbl rwlock to spinlock
2009-01-08 15:12:39 -06:00
ecryptfs
fs/ecryptfs/inode.c: cleanup kerneldoc
2009-01-06 15:59:22 -08:00
efs
exportfs
Merge branch 'next' into for-linus
2008-12-25 11:40:09 +11:00
ext2
ext2: also update the inode on disk when dir is IS_DIRSYNC
2009-01-15 16:39:42 -08:00
ext3
filesystem freeze: add error handling of write_super_lockfs/unlockfs
2009-01-09 16:54:42 -08:00
ext4
filesystem freeze: add error handling of write_super_lockfs/unlockfs
2009-01-09 16:54:42 -08:00
fat
Merge git://git.kernel.org/pub/scm/linux/kernel/git/hirofumi/fatfs-2.6
2008-12-30 20:33:34 -08:00
freevxfs
freevxfs: ensure fast symlinks are NUL-terminated
2008-12-31 18:07:40 -05:00
fuse
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse
2009-01-06 17:01:20 -08:00
gfs2
filesystem freeze: add error handling of write_super_lockfs/unlockfs
2009-01-09 16:54:42 -08:00
hfs
CRED: Wrap task credential accesses in the HFS filesystem
2008-11-14 10:38:54 +11:00
hfsplus
CRED: Wrap task credential accesses in the HFSplus filesystem
2008-11-14 10:38:54 +11:00
hostfs
fs: symlink write_begin allocation context fix
2009-01-04 13:33:20 -08:00
hpfs
CRED: Wrap task credential accesses in the HPFS filesystem
2008-11-14 10:38:55 +11:00
hppfs
CRED: Use creds in file structs
2008-11-14 10:39:25 +11:00
hugetlbfs
hugetlb: unsigned ret cannot be negative
2009-01-06 15:59:08 -08:00
isofs
isofs check for NULL ->i_op in root directory is dead code
2009-01-05 11:53:38 -05:00
jbd
jbd: remove excess kernel-doc notation
2009-01-08 08:31:01 -08:00
jbd2
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
2009-01-08 17:14:59 -08:00
jffs2
[JFFS2] remove junk prototypes
2009-01-09 21:05:21 +00:00
jfs
filesystem freeze: add error handling of write_super_lockfs/unlockfs
2009-01-09 16:54:42 -08:00
lockd
NLM: Clean up flow of control in make_socks() function
2009-01-07 15:40:44 -05:00
minix
minix: fix add link's wrong position calculation
2009-01-06 15:59:27 -08:00
ncpfs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2009-01-07 11:31:52 -08:00
nfs
fs: symlink write_begin allocation context fix
2009-01-04 13:33:20 -08:00
nfs_common
SUNRPC: nfsacl_encode/nfsacl_decode should be exported as GPL-only
2008-12-23 15:21:32 -05:00
nfsd
nfsd: last_byte_offset
2009-01-07 17:38:31 -05:00
nls
notify
[CVE-2009-0029] System call wrappers part 29
2009-01-14 14:15:30 +01:00
ntfs
ntfs: don't NULL i_op
2009-01-05 11:54:27 -05:00
ocfs2
fix similar typos to successfull
2009-01-08 08:31:15 -08:00
omfs
zero i_uid/i_gid on inode allocation
2009-01-05 11:54:28 -05:00
openpromfs
zero i_uid/i_gid on inode allocation
2009-01-05 11:54:28 -05:00
partitions
block: fix bug in ptbl lookup cache
2009-01-09 21:46:13 +01:00
proc
Merge git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-nommu
2009-01-09 14:00:58 -08:00
qnx4
ramfs
NOMMU: Fix cleanup handling in ramfs_nommu_get_umapped_area()
2009-01-08 12:04:46 +00:00
reiserfs
filesystem freeze: add error handling of write_super_lockfs/unlockfs
2009-01-09 16:54:42 -08:00
romfs
romfs: romfs_iget() - unsigned ino >= 0 is always true
2009-01-08 08:31:14 -08:00
smbfs
fs: symlink write_begin allocation context fix
2009-01-04 13:33:20 -08:00
squashfs
btrfs & squashfs: Move btrfs and squashfsto's magic number to <linux/magic.h>
2009-01-15 16:39:38 -08:00
sysfs
zero i_uid/i_gid on inode allocation
2009-01-05 11:54:28 -05:00
sysv
sysv: ensure fast symlinks are NUL-terminated
2008-12-31 18:07:39 -05:00
ubifs
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
2009-01-07 11:31:52 -08:00
udf
Merge branch 'master' into next
2008-12-04 17:16:36 +11:00
ufs
CRED: Wrap task credential accesses in the UFS filesystem
2008-11-14 10:39:04 +11:00
xfs
Long btree pointers are still 64 bit on disk
2009-01-21 18:33:46 -06:00
aio.c
[CVE-2009-0029] System call wrappers part 16
2009-01-14 14:15:25 +01:00
anon_inodes.c
anon_inodes: use fops->owner for module refcount
2008-12-31 16:55:44 +02:00
attr.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
bad_inode.c
kill ->dir_notify()
2008-12-31 18:07:43 -05:00
binfmt_aout.c
sanitize ifdefs in binfmt_aout
2009-01-03 11:45:54 -08:00
binfmt_elf.c
ELF: implement AT_RANDOM for glibc PRNG seeding
2009-01-08 08:31:12 -08:00
binfmt_elf_fdpic.c
FDPIC: Don't attempt to expand the userspace stack to fill the space allocated
2009-01-08 12:04:47 +00:00
binfmt_em86.c
binfmt_flat.c
FLAT: Don't attempt to expand the userspace stack to fill the space allocated
2009-01-08 12:04:47 +00:00
binfmt_misc.c
fs/binfmt_misc.c: add terminating newline to /proc/sys/fs/binfmt_misc/status
2009-01-06 15:59:19 -08:00
binfmt_script.c
binfmt_som.c
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
bio-integrity.c
bio: allow individual slabs in the bio_set
2008-12-29 08:29:23 +01:00
bio.c
[SCSI] block: make blk_rq_map_user take a NULL user-space buffer for WRITE
2009-01-02 11:10:35 -06:00
block_dev.c
filesystem freeze: implement generic freeze feature
2009-01-09 16:54:42 -08:00
buffer.c
[CVE-2009-0029] System call wrappers part 10
2009-01-14 14:15:22 +01:00
char_dev.c
fs: fix name overwrite in __register_chrdev_region()
2009-01-06 15:59:13 -08:00
compat.c
[CVE-2009-0029] Make sys_pselect7 static
2009-01-14 14:15:16 +01:00
compat_binfmt_elf.c
compat_ioctl.c
dcache.c
[CVE-2009-0029] System call wrappers part 20
2009-01-14 14:15:26 +01:00
dcookies.c
[CVE-2009-0029] System call wrapper special cases
2009-01-14 14:15:18 +01:00
direct-io.c
fs: truncate blocks outside i_size after O_DIRECT write error
2009-01-06 15:59:06 -08:00
dquot.c
quota: don't set grace time when user isn't above softlimit
2009-01-08 08:31:01 -08:00
drop_caches.c
eventfd.c
[CVE-2009-0029] System call wrappers part 32
2009-01-14 14:15:31 +01:00
eventpoll.c
[CVE-2009-0029] System call wrappers part 23
2009-01-14 14:15:28 +01:00
exec.c
[CVE-2009-0029] System call wrappers part 27
2009-01-14 14:15:29 +01:00
fcntl.c
[CVE-2009-0029] System call wrappers part 15
2009-01-14 14:15:24 +01:00
fifo.c
file.c
file_table.c
filp_cachep can be static in fs/file_table.c
2008-12-31 18:07:42 -05:00
filesystems.c
[CVE-2009-0029] System call wrappers part 27
2009-01-14 14:15:29 +01:00
fs-writeback.c
fs: sys_sync fix
2009-01-06 15:59:09 -08:00
generic_acl.c
inode.c
partial revert of asynchronous inode delete
2009-01-09 13:15:49 -08:00
internal.h
CRED: Make execve() take advantage of copy-on-write credentials
2008-11-14 10:39:24 +11:00
ioctl.c
[CVE-2009-0029] System call wrappers part 15
2009-01-14 14:15:24 +01:00
ioprio.c
[CVE-2009-0029] System call wrappers part 28
2009-01-14 14:15:30 +01:00
Kconfig
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus
2009-01-09 15:18:49 -08:00
Kconfig.binfmt
CORE_DUMP_DEFAULT_ELF_HEADERS depends on ELF_CORE
2009-01-09 16:54:41 -08:00
libfs.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
2009-01-05 18:32:06 -08:00
locks.c
[CVE-2009-0029] System call wrappers part 16
2009-01-14 14:15:25 +01:00
Makefile
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pkl/squashfs-linus
2009-01-09 15:18:49 -08:00
mbcache.c
mpage.c
do_mpage_readpage(): remove useless clear_buffer_mapped() call
2009-01-06 15:59:01 -08:00
namei.c
[CVE-2009-0029] System call wrappers part 29
2009-01-14 14:15:30 +01:00
namespace.c
[CVE-2009-0029] System call wrappers part 14
2009-01-14 14:15:24 +01:00
nfsctl.c
[CVE-2009-0029] System call wrappers part 27
2009-01-14 14:15:29 +01:00
no-block.c
open.c
[CVE-2009-0029] System call wrappers part 30
2009-01-14 14:15:30 +01:00
pipe.c
[CVE-2009-0029] System call wrappers part 33
2009-01-14 14:15:32 +01:00
pnode.c
pnode.h
posix_acl.c
CRED: Wrap task credential accesses in the filesystem subsystem
2008-11-14 10:39:05 +11:00
quota.c
[CVE-2009-0029] System call wrappers part 20
2009-01-14 14:15:26 +01:00
quota_tree.c
quota: Split off quota tree handling into a separate file
2009-01-05 08:40:21 -08:00
quota_tree.h
quota: Split off quota tree handling into a separate file
2009-01-05 08:40:21 -08:00
quota_v1.c
quota: Move quotaio_v[12].h from include/linux/ to fs/
2009-01-05 08:36:58 -08:00
quota_v2.c
quota: Convert union in mem_dqinfo to a pointer
2009-01-05 08:40:21 -08:00
quotaio_v1.h
quota: Move quotaio_v[12].h from include/linux/ to fs/
2009-01-05 08:36:58 -08:00
quotaio_v2.h
quota: Split off quota tree handling into a separate file
2009-01-05 08:40:21 -08:00
read_write.c
[CVE-2009-0029] System call wrappers part 20
2009-01-14 14:15:26 +01:00
read_write.h
readdir.c
[CVE-2009-0029] System call wrappers part 32
2009-01-14 14:15:31 +01:00
select.c
[CVE-2009-0029] System call wrappers part 32
2009-01-14 14:15:31 +01:00
seq_file.c
Merge branch 'cpus4096-for-linus-3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-01-03 12:04:39 -08:00
signalfd.c
[CVE-2009-0029] System call wrappers part 31
2009-01-14 14:15:31 +01:00
splice.c
[CVE-2009-0029] System call wrappers part 31
2009-01-14 14:15:31 +01:00
stack.c
stat.c
[CVE-2009-0029] System call wrappers part 30
2009-01-14 14:15:30 +01:00
super.c
[CVE-2009-0029] System call wrappers part 11
2009-01-14 14:15:23 +01:00
sync.c
[CVE-2009-0029] System call wrappers part 09
2009-01-14 14:15:21 +01:00
timerfd.c
[CVE-2009-0029] System call wrappers part 32
2009-01-14 14:15:31 +01:00
utimes.c
[CVE-2009-0029] System call wrappers part 30
2009-01-14 14:15:30 +01:00
xattr.c
[CVE-2009-0029] System call wrappers part 13
2009-01-14 14:15:23 +01:00
xattr_acl.c