>On Wed, 8 Feb 2006 14:11:24 -0800 Chris Wright wrote:>> >>>* Bernd Schubert (bernd-schubert@gmx.de) wrote:>> >>>>>Er, you mean /proc/fs/reiserfs/{partition}/on-disk-super?>>> >>>>>Yup.>>>> >>>>>bernd@bathl ~>grep attrs_cleared /proc/fs/reiserfs/hda6/on-disk-super>>>flags: 1[attrs_cleared]>>> >>>>>>>2) does mount -o attrs ... make a difference?>>>> >>>>>>>Yes, 2.6.13 now makes the same trouble. No difference with 2.6.15.3. >>>I played with mount -o noattrs, this makes no difference with 2.6.13, but has >>>some effects to 2.6.15.3. Creating files in /var/run is possible again, >>>lsattr gives "lsattr: Inappropriate ioctl for device While reading flags >>>on /var/run", but deleting files in /var/run is still impossible (still >>>rather bad for the init-scripts).>>> >>>>>Is the filesystem in question old - could it be created initially in the>reiserfs v3.5 format (used with 2.2.x kernels) and later converted to>v3.6 (by mounting with the "conv" option)?>> >>>Yes, that's what I thought. There's still some backward logic in there.>>noattrs vs. attrs triggers whether the code path that's patched in>>2.6.15.3 is taken. I'll dig a bit more, but hopefully the reiserfs folks >>can fix this for us.>> >>>>Here is a simple test case which reproduces the problem with a>filesystem converted from v3.5:>># dd if=/dev/zero of=tmp.img bs=1M count=100># mkreiserfs --format 3.5 -f tmp.img># mount -t reiserfs -o loop,conv tmp.img /mnt/disk/># umount /mnt/disk/># reiserfsck --clean-attributes tmp.img># mount -t reiserfs -o loop tmp.img /mnt/disk/>>At this point, I get obviously wrong attributes on /mnt/disk:>># lsattr -d /mnt/disk/>-----a--c---- /mnt/disk/>>BTW, this breaks even with kernels earlier than 2.6.15.2, if you also>add the "attrs" options to the last mount command.>>Apparently the reiserfs attrs code has been broken for such converted>filesystems for some time, but it could be enabled only with the "attrs">option, so people were not hitting this. However, the following patch:>>http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2949ccf9379678df66ecf2ca70ed4656159eacdd>>changed the logic to enable the "attrs" option on all filesystems which>have the reiserfs_attrs_cleared flag. But that patch was broken - it>did not really set the option properly, so the attrs-related breakage>did not became visible until yet another patch:>>http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d35c602870ece3166cff3d25fbc687a7f707acf3>>which later made into 2.6.15.2, and caused problems for some people.>>I have noticed that fs/reiserfs/inode.c:init_inode() does not initialize>REISERFS_I(inode)->i_attrs and inode->i_flags (as done by>sd_attrs_to_i_attrs()) in the branch for v1 stat data; maybe this causes>the problem?> >