Joined: 24 Dec 2002
|Posted: Sat Jan 29, 2005 10:24 pm Post subject: reiserfs: addition of support for extended attributes
|I recently enabled support for extended attributes in the reiserfs 3 driver in my kernel build for use with existing "non-extended attributes" reiserfs partitions, without reading the (albeit limited) documentation on the filesystem and encountered some "interesting" behavior afterwards.
After a few days I noticed that several files had "default" attributes 'c' and 'u'. These attributes seemed mostly harmless, so I just cleared them wherever I encountered them, but didn't make any effort to clear them on the entire filesystem.
Yesterday, while performing some cleanup of my home tree, I found a handful of symlinks that could not be modified in any way by the user or root. Naturally I used lsattr(1) to check the attributes on the symlinks. None of them had attributes set, including immutable, so I was at a loss to explain this behavior. After staring at the reiserfsck(8) man page for a few minutes I noticed this switch:
This option cleans reserved fields of Stat-Data items. There were days when there were no extended
attributes in reiserfs. When they were implemented old partitions needed to be cleaned first -- reiserfs
code in the kernel did not care about not used fields in its strutures. Thus if you have used one of the
old (pre-attrbutes) kernels with a ReiserFS filesystem and you want to use extented attribues there, you
should clean the filesystem first.
To see if the attributes were the problem, I remounted my /home without the 'attr' flag and sure enough, I was able to modify the heretofore recalcitrant symlinks.
After logging out, I jumped to a vc, logged in as root, term'd all processes that had filehandles open on /home, and then ran reiserfsck --clean-attributes against the partition (I know I should have made a backup first, but I didn't. Please make a backup if at possible before running an fsck utility feature that writes to disk!). After reiserfsck completed, I remounted /home and haven't encountered any problems since. If I do run into any problems with my reiser filesystems after running this feature on them I'll update this node.