[PATCH] Correction to check_filetype()

2007-02-21 Thread Kalpak Shah
Hi, If the mode of a directory gets corrupted, check_filetype() makes wrong decisions for all its sub-directories. For example, using debugfs we can corrupt the mode of a directory to 0140755 (i.e. a socket). e2fsck will set the filetype of all its subdirectories as 6 (filetype for socket). All

ext3 not writing inode flags

2007-02-21 Thread Jan Kara
Hello, I've noticed that if e. g. S_IMMUTABLE flag is set on an inode, ext3 does not propagate it to its inode flags on write. This also leads to the situation that lsattr reports no flag set but the file is in fact immutable. Would a fix be accepted? Actually, the quota code is the only place

Re: [PATCH] Correction to check_filetype()

2007-02-21 Thread Kalpak Shah
Hi, The other issue this brings up is maybe pass1 should be checking whether it is the inode mode that is corrupted (by trying to verify block[0] has "." and ".."in it) instead of truncating off those blocks. This would actually be a redundant check as pass2 would also make the same check. We

Re: [PATCH] Correction to check_filetype()

2007-02-21 Thread Peter Staubach
Kalpak Shah wrote: Hi, If the mode of a directory gets corrupted, check_filetype() makes wrong decisions for all its sub-directories. For example, using debugfs we can corrupt the mode of a directory to 0140755 (i.e. a socket). e2fsck will set the filetype of all its subdirectories as 6 (file

Re: [PATCH] Correction to check_filetype()

2007-02-21 Thread Kalpak Shah
Hi Peter, Thanks for pointing out the typo. In the kernel, struct ext3_dir_entry_2 has a 8-bit name_len field followed by 8-bit field for filetype. Whereas in e2fsck, struct ext2_dir_entry has a 16-bit name_len field, the upper 8 bits of which store the filetype. Hence e2fsck masks the upper 8

[PATCH] ext[34] EA block reference count racing fix

2007-02-21 Thread Mingming Cao
There are race issues around ext[34] xattr block release code. ext[34]_xattr_release_block() checks the reference count of xattr block (h_refcount) and frees that xattr block if it is the last one reference it. Unlike ext2, the check of this counter is unprotected by any lock. ext[34]_xattr_releas

+ ext-ea-block-reference-count-racing-fix.patch added to -mm tree

2007-02-21 Thread akpm
The patch titled ext[34]" EA block reference count racing fix has been added to the -mm tree. Its filename is ext-ea-block-reference-count-racing-fix.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/

+ ext-ea-block-reference-count-racing-fix-fix.patch added to -mm tree

2007-02-21 Thread akpm
The patch titled ext-ea-block-reference-count-racing-fix-fix has been added to the -mm tree. Its filename is ext-ea-block-reference-count-racing-fix-fix.patch *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stu