Re: Installing Fedora Core with root on Reiserfs
On Monday 18 July 2005 06:01, Edward Shishkin [EMAIL PROTECTED] wrote: FC4-test3 (and perhaps FC4) installs its own version of grub which seems to interact incorrectly with reiserfs. The problem is that reiserfs.ko module located on reiserfs partition can not be loaded. Firstly there is no situation in which reiserfs.ko will be loaded from a reiserfs partition. If the root file system is reiserfs then reiserfs.ko will (or at least should) be included in the initrd. The GRUB support for ReiserFS is based on the file /boot/grub/reiserfs_stage1_5 which is only needed for /boot on ReiserFS. Some people believe that /boot should be a separate file system to the root file system regardless of all other issues. All systems which use LVM for the root file system on Fedora (the default partitioning involves LVM) will have a separate /boot file system because GRUB apparently doesn't support LVM (yet). So having a /boot with Ext2/3 is an easy solution to any ReiserFS booting issues, and a solution that will be forced on the users if they use LVM. When using a small /boot file system ReiserFS is not a good choice. A quick test showed that Ext3 gave 18M more usable disk space from a 100M file system than ReiserFS, this will essentially force all LVM users to use Ext3 for /boot. 1. (Requires some partition formatted by ext2). At the end of installation process (after invitation to reboot) boot from some rescue CD, mount reiserfs root partition (say to /mnt) and move all the compressed images (vmlinuz-xxx and initrd-xxx located at /mnt/boot) to your ext2 partition. Then edit the file /mnt/boot/grub/grub.conf pointing a new location for the images. Reboot and finish the installation process. This can be done automatically through the Anaconda GUI or through kickstart. Just specify that /boot is to be a separate partition of type Ext3. -- http://www.coker.com.au/selinux/ My NSA Security Enhanced Linux packages http://www.coker.com.au/bonnie++/ Bonnie++ hard drive benchmark http://www.coker.com.au/postal/Postal SMTP/POP benchmark http://www.coker.com.au/~russell/ My home page
Re: Installing Fedora Core with root on Reiserfs
Russell Coker wrote: On Monday 18 July 2005 06:01, Edward Shishkin [EMAIL PROTECTED] wrote: FC4-test3 (and perhaps FC4) installs its own version of grub which seems to interact incorrectly with reiserfs. The problem is that reiserfs.ko module located on reiserfs partition can not be loaded. Firstly there is no situation in which reiserfs.ko will be loaded from a reiserfs partition. Hmmm... actually this is a default situation when installing with root on reiserfs.. If the root file system is reiserfs then reiserfs.ko will (or at least should) be included in the initrd. Right, but initrd is in /boot which is not something separate: it is on the same reiserfs root partition.. The GRUB support for ReiserFS is based on the file /boot/grub/reiserfs_stage1_5 which is only needed for /boot on ReiserFS. Some people believe that /boot should be a separate file system to the root file system regardless of all other issues. All systems which use LVM for the root file system on Fedora (the default partitioning involves LVM) will have a separate /boot file system because GRUB apparently doesn't support LVM (yet). So having a /boot with Ext2/3 is an easy solution to any ReiserFS booting issues, and a solution that will be forced on the users if they use LVM. When using a small /boot file system ReiserFS is not a good choice. A quick test showed that Ext3 gave 18M more usable disk space from a 100M file system than ReiserFS, this will essentially force all LVM users to use Ext3 for /boot. 1. (Requires some partition formatted by ext2). At the end of installation process (after invitation to reboot) boot from some rescue CD, mount reiserfs root partition (say to /mnt) and move all the compressed images (vmlinuz-xxx and initrd-xxx located at /mnt/boot) to your ext2 partition. Then edit the file /mnt/boot/grub/grub.conf pointing a new location for the images. Reboot and finish the installation process. This can be done automatically through the Anaconda GUI or through kickstart. Just specify that /boot is to be a separate partition of type Ext3.
Re: Testimonials page
On Monday 18 July 2005 00:18, Hubert Chan wrote: On Sun, 17 Jul 2005 22:22:32 +0200, Christian Iversen [EMAIL PROTECTED] said: In particular, in French, period is for the thousands separator, and comma is the decimal point. AFAIK it's the same in Sweden, Norway, Denmark, Germany, The Netherlands, and in fact most of Europe. I'm wondering if it's based mostly on region or language. For example, I know that for the English-speaking portion of North America, we use comma for the thousands separator. But for the French-speaking population (e.g. Quebec), or when writing in French, comma is the decimal separator. Do Swedes, Norwegians, etc. use period as the thousands separator even when writing in English? No, that wouldn't make sense :-) I think it's true that it's language-based. To make matters worse though, I've seen some exams with a mixed danish/english contents use both within a few lines of text. And on top of that, it's sometimes reversed because , is used as a logical seperator in many programming langauges. But it's probably safe to say that outside of physics (and even there it would be odd), 123.456 is 1 dot 23456 * 10^5 -- Regards, Christian Iversen
Re: Testimonials page
If I did say I backed up 0x6ddd0 files in 8 minutes would he be happy ? Most off topic thread of the year award. But it's probably safe to say that outside of physics (and even there it would be odd), 123.456 is 1 dot 23456 * 10^5
Re: Installing Fedora Core with root on Reiserfs
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Edward Shishkin wrote: Russell Coker wrote: On Monday 18 July 2005 06:01, Edward Shishkin [EMAIL PROTECTED] wrote: FC4-test3 (and perhaps FC4) installs its own version of grub which seems to interact incorrectly with reiserfs. The problem is that reiserfs.ko module located on reiserfs partition can not be loaded. Firstly there is no situation in which reiserfs.ko will be loaded from a reiserfs partition. Hmmm... actually this is a default situation when installing with root on reiserfs.. If the root file system is reiserfs then reiserfs.ko will (or at least should) be included in the initrd. Right, but initrd is in /boot which is not something separate: it is on the same reiserfs root partition.. The situation you're describing is one that is well tested by now. If the root filesystem is reiserfs, and /boot is a part of it, reiserfs.ko MUST be in the initrd. Otherwise, there is a chicken/egg problem and the system will not boot. The initrd being on a reiserfs filesystem is fine since grub doesn't use any kernel services when it's executing. Grub loads the kernel and the initrd itself before transferring control to the kernel and uses no kernel services to do so. Grub has its own filesystem reading code which gets pointed to during installation. So, if there is truly a problem with this, I'd look at Fedora's mkinitrd. - -Jeff - -- Jeff Mahoney SuSE Labs -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFC29H1LPWxlyuTD7IRAv6sAJ4wwM6ArTI+P8NeC2Xr2fMdiSW/6QCbB9wh /Co71RNi4Uq3a6tatRQDjiw= =EHOF -END PGP SIGNATURE-
Re: reiserfs+acl makes processes hang?
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Tarmo Tänav wrote: Hi, (I've already sent this to lkml and the bug has been confirmed a couple of times, but I though I should also send it to reiserfs-list so here goes:) I think I've found a bug in reiserfs acls. If triggered it means that any program trying to access the partition, where the bug occured, will just hang in D state, with no way to kill the program. Here's how to reproduce: 1. mount a reiserfs volume (loopmount will do) with -o acl. 2. create a directory dir 3. set some default acl: setfacl -d -m u:username:rwX dir 4. cd dir 5. dd if=/dev/zero of=somefile1 bs=4k count=10 (the idea is to run out of space) 6. now df should show 0 free space, if not then repeat 5. 7. echo 1 somefile2 # this should hang infinitely Now no program will be able to access the partition. I haven't tried to reproduce it, but the same problem also happened when a user hit his hard quota limit on my server. Then no program could access his homedir. Ok, this is due to the iput in the reiserfs_new_inode failure path calling reiserfs_delete_xattrs with the lock already held. I'll post a patch soon. - -Jeff - -- Jeff Mahoney SuSE Labs -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFC297mLPWxlyuTD7IRAjO6AJ4wgkdvMnHVablWE7vBL1f+nwJhSACgmG7F icjFXLkoAIPOVUa02yR7Ys4= =1Nkh -END PGP SIGNATURE-
[PATCH 4/5] reiserfs: introduce reiserfs_error() TESTING ONLY
Although reiserfs can currently handle severe errors such as journal failure, it cannot handle less severe errors like metadata i/o failure. The following patch adds a reiserfs_error() function akin to the one in ext3. Subsequent patches will use this new error handler to handle errors more gracefully in general. FOR TESTING ONLY Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3/fs/reiserfs/prints.c linux-2.6.13-rc3.errors/fs/reiserfs/prints.c --- linux-2.6.13-rc3/fs/reiserfs/prints.c 2005-07-13 13:57:32.0 -0400 +++ linux-2.6.13-rc3.errors/fs/reiserfs/prints.c2005-07-14 16:36:47.0 -0400 @@ -366,6 +366,39 @@ void reiserfs_panic(struct super_block * reiserfs_bdevname(sb), error_buf); } +void reiserfs_handle_error(struct super_block *sb, int errno) +{ + + if (sb-s_flags MS_RDONLY) + return; + + if (reiserfs_error_ro(sb)) { + reiserfs_info(sb, Remounting filesystem read-only\n); + sb-s_flags |= MS_RDONLY; + } else { + reiserfs_journal_abort(sb, errno); + } + + if (reiserfs_error_panic(sb)) { + reiserfs_panic (sb, panic forced after error); + } +} + +void reiserfs_error_internal(struct super_block *sb, const char *id, + const char *function, const char *fmt, ...) +{ + do_reiserfs_warning(fmt); + + if (id id[0]) + printk(KERN_CRIT REISERFS error (device %s): %s %s: %s\n, + sb-s_id, id, function, error_buf); + else + printk(KERN_CRIT REISERFS error (device %s): %s: %s\n, + sb-s_id, function, error_buf); + + reiserfs_handle_error(sb, -EIO); +} + void reiserfs_abort(struct super_block *sb, int errno, const char *fmt, ...) { do_reiserfs_warning(fmt); diff -ruNpX dontdiff linux-2.6.13-rc3/include/linux/reiserfs_fs.h linux-2.6.13-rc3.errors/include/linux/reiserfs_fs.h --- linux-2.6.13-rc3/include/linux/reiserfs_fs.h2005-07-13 13:57:33.0 -0400 +++ linux-2.6.13-rc3.errors/include/linux/reiserfs_fs.h 2005-07-14 15:53:13.0 -0400 @@ -1995,6 +1995,9 @@ void unfix_nodes(struct tree_balance *); /* prints.c */ void reiserfs_panic(struct super_block *s, const char *fmt, ...) __attribute__ ((noreturn)); +void reiserfs_error_internal(struct super_block *s, const char *id, const char *function, const char *fmt, ...); +#define reiserfs_error(s, id, fmt, args...) \ +reiserfs_error_internal(s, id, __FUNCTION__, fmt, ##args) void reiserfs_info(struct super_block *s, const char *fmt, ...); void reiserfs_debug(struct super_block *s, int level, const char *fmt, ...); void print_indirect_item(struct buffer_head *bh, int item_num); -- Jeff Mahoney SuSE Labs
[PATCH 5/5] reiserfs: convert warnings into errors TESTING ONLY
A number of warnings in reiserfs are technically errors, but no facility existed to handle them. With the introduction of reiserfs_error(), the facility exists. NOTE: This is an incomplete patch for testing and comment only. Locking conditions have not been fully tested and there are cases where an error should be handled but is still left as a warning. This patch is a work in progress, and I would appreciate comments on what should be considered an error and what is safe being a warning. In many cases additional logic may be required so that things like ENOSPC are handled gracefully, and EIO is handled as a filesystem-wide error. FOR TESTING ONLY Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3/fs/reiserfs/bitmap.c linux-2.6.13-rc3.errors/fs/reiserfs/bitmap.c --- linux-2.6.13-rc3/fs/reiserfs/bitmap.c 2005-07-14 19:32:13.0 -0400 +++ linux-2.6.13-rc3.errors/fs/reiserfs/bitmap.c2005-07-14 19:36:12.0 -0400 @@ -63,27 +63,27 @@ int is_reusable(struct super_block *s, b int i, j; if (block == 0 || block = SB_BLOCK_COUNT(s)) { - reiserfs_warning(s, vs-4010, -block number is out of range %lu (%u), -block, SB_BLOCK_COUNT(s)); + reiserfs_error(s, vs-4010, + block number is out of range %lu (%u), + block, SB_BLOCK_COUNT(s)); return 0; } /* it can't be one of the bitmap blocks */ for (i = 0; i SB_BMAP_NR(s); i++) if (block == SB_AP_BITMAP(s)[i].bh-b_blocknr) { - reiserfs_warning(s, vs-4020, bitmap block -%lu(%u) can't be freed or reused, -block, SB_BMAP_NR(s)); + reiserfs_error(s, vs-4020, bitmap block + %lu(%u) can't be freed or reused, + block, SB_BMAP_NR(s)); return 0; } get_bit_address(s, block, i, j); if (i = SB_BMAP_NR(s)) { - reiserfs_warning(s, vs-4030, there is no so many -bitmap blocks: block=%lu, bitmap_nr=%d, -block, i); + reiserfs_error(s, vs-4030, there is no so many + bitmap blocks: block=%lu, bitmap_nr=%d, + block, i); return 0; } @@ -91,10 +91,10 @@ int is_reusable(struct super_block *s, b reiserfs_test_le_bit(j, SB_AP_BITMAP(s)[i].bh-b_data)) || (bit_value == 1 reiserfs_test_le_bit(j, SB_AP_BITMAP(s)[i].bh-b_data) == 0)) { - reiserfs_warning(s, vs-4040, corresponding bit of -block %lu does not match required value -(i==%d, j==%d) test_bit==%d, -block, i, j, reiserfs_test_le_bit(j, + reiserfs_error(s, vs-4040, corresponding bit of + block %lu does not match required value + (i==%d, j==%d) test_bit==%d, + block, i, j, reiserfs_test_le_bit(j, SB_AP_BITMAP (s)[i].bh- b_data)); @@ -103,8 +103,8 @@ int is_reusable(struct super_block *s, b } if (bit_value == 0 block == SB_ROOT_BLOCK(s)) { - reiserfs_warning(s, vs-4050, this is root block (%u), -it must be busy, SB_ROOT_BLOCK(s)); + reiserfs_error(s, vs-4050, this is root block (%u), + it must be busy, SB_ROOT_BLOCK(s)); return 0; } @@ -155,8 +155,8 @@ static int scan_bitmap_block(struct reis /* - I mean `a window of zero bits' as in description of this function - Zam. */ if (!bi) { - reiserfs_warning(s, jdm-4055, NULL bitmap info pointer -for bitmap %d, bmap_n); + reiserfs_error(s, jdm-4055, NULL bitmap info pointer + for bitmap %d, bmap_n); return 0; } if (buffer_locked(bi-bh)) { @@ -388,8 +388,8 @@ static void _reiserfs_free_block(struct get_bit_address(s, block, nr, offset); if (nr = sb_bmap_nr(rs)) { - reiserfs_warning(s, vs-4075, -block %lu is out of range, block); + reiserfs_error(s, vs-4075, + block %lu is out of range, block); return; } @@ -397,8 +397,8 @@ static void
Re: [PATCH 1/5] reiserfs: use more consistent printk formatting
Jeff Mahoney wrote: The output format between a warning/error/panic/info/etc changes with which one is used. The following patch makes the messages more internally consistent, but also more consistent with other Linux filesystems. Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3/fs/reiserfs/prints.c linux-2.6.13-rc3.errors/fs/reiserfs/prints.c --- linux-2.6.13-rc3/fs/reiserfs/prints.c 2005-07-13 13:57:32.0 -0400 +++ linux-2.6.13-rc3.errors/fs/reiserfs/prints.c 2005-07-14 16:36:47.0 -0400 @@ -269,10 +269,10 @@ void reiserfs_warning(struct super_block { do_reiserfs_warning(fmt); if (sb) - printk(KERN_WARNING ReiserFS: %s: warning: %s\n, - reiserfs_bdevname(sb), error_buf); + printk(KERN_WARNING REISERFS warning (device %s): %s\n, + sb-s_id, error_buf); else - printk(KERN_WARNING ReiserFS: warning: %s\n, error_buf); + printk(KERN_WARNING REISERFS warning: %s\n, error_buf); why are you changing it to the harder to read all upper case? It is known from various studies that all uppercase is harder for users to read.
[PATCH 0/5] reiserfs: moving towards better error handling
Hey all - There was a thread recently addressing the lack of better error handling in reiserfs. The following series of patches attempts to address it. I'll post the following 5 patches. The first three are kind of cleanups, just making things more consistent. The final two start to implement the actual error handling and haven't received much testing yet. * 01-reiserfs-consistent-msgs.diff - Makes the reiserfs output messages more consistent with respect to each other and other Linux filesystems. This really just consists of changing the prefix that gets printed before a warning, info, panic, etc. * 02-reiserfs-info.diff - A few messages that are currently printed as warnings aren't. This patch changes them to be informational notices. * 03-reiserfs-warning.diff - This patch makes the warning messages more consistent. Hans as specified every warning should have a unique ID associated with it, so the patch adds a parameter for it. The function name will also be included in every warning. In instances where the device name was printed, it has been removed since the reiserfs warning message prefix includes it. * 04-reiserfs-error-1.diff - This patch adds a reiserfs_error() function to handle non-journal errors. - FOR TESTING ONLY * 05-reiserfs-error-2.diff - This patch changes a number of warnings to errors, such as where metadata i/o errors occur. - FOR TESTING ONLY Comments welcome. -Jeff -- Jeff Mahoney SuSE Labs pgpfgzqZaWIkI.pgp Description: PGP signature
[PATCH 2/5] reiserfs: make some warnings informational
In several places, reiserfs_warning is used when there is no warning, just a notice. This patch changes some of them to indicate that the message is merely informational. Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3.1/fs/reiserfs/bitmap.c linux-2.6.13-rc3.2/fs/reiserfs/bitmap.c --- linux-2.6.13-rc3.1/fs/reiserfs/bitmap.c 2005-07-14 19:43:14.0 -0400 +++ linux-2.6.13-rc3.2/fs/reiserfs/bitmap.c 2005-07-14 19:44:11.0 -0400 @@ -40,7 +40,7 @@ #define SET_OPTION(optname) \ do { \ -reiserfs_warning(s, reiserfs: option \%s\ is set, #optname); \ +reiserfs_info(s, block allocator option \%s\ is set, #optname); \ set_bit(_ALLOC_ ## optname , SB_ALLOC_OPTS(s)); \ } while(0) #define TEST_OPTION(optname, s) \ @@ -611,7 +611,7 @@ int reiserfs_parse_alloc_options(struct return 1; } - reiserfs_warning(s, allocator options = [%08x]\n, SB_ALLOC_OPTS(s)); + reiserfs_info(s, allocator options = [%08x]\n, SB_ALLOC_OPTS(s)); return 0; } diff -ruNpX dontdiff linux-2.6.13-rc3.1/fs/reiserfs/super.c linux-2.6.13-rc3.2/fs/reiserfs/super.c --- linux-2.6.13-rc3.1/fs/reiserfs/super.c 2005-07-14 19:43:14.0 -0400 +++ linux-2.6.13-rc3.2/fs/reiserfs/super.c 2005-07-14 19:45:06.0 -0400 @@ -1444,13 +1444,11 @@ static int read_super_block(struct super /* magic is of non-standard journal filesystem, look at s_version to find which format is in use */ if (sb_version(rs) == REISERFS_VERSION_2) - reiserfs_warning(s, -read_super_block: found reiserfs format \3.6\ - with non-standard journal); + reiserfs_info(s, found reiserfs format \3.6\ + with non-standard journal\n); else if (sb_version(rs) == REISERFS_VERSION_1) - reiserfs_warning(s, -read_super_block: found reiserfs format \3.5\ - with non-standard journal); + reiserfs_info(s, found reiserfs format \3.5\ + with non-standard journal\n); else { reiserfs_warning(s, sh-2012: read_super_block: found unknown @@ -1543,8 +1541,8 @@ static __u32 find_hash_out(struct super_ if (reiserfs_rupasov_hash(s)) { hash = YURA_HASH; } - reiserfs_warning(s, FS seems to be empty, autodetect -is using the default hash); + reiserfs_info(s, FS seems to be empty, autodetect +is using the default hash\n); break; } r5hash = GET_HASH_VALUE(r5_hash(de.de_name, de.de_namelen)); diff -ruNpX dontdiff linux-2.6.13-rc3.1/fs/reiserfs/xattr.c linux-2.6.13-rc3.2/fs/reiserfs/xattr.c --- linux-2.6.13-rc3.1/fs/reiserfs/xattr.c 2005-07-14 19:43:14.0 -0400 +++ linux-2.6.13-rc3.2/fs/reiserfs/xattr.c 2005-07-14 19:44:11.0 -0400 @@ -1299,12 +1299,10 @@ int reiserfs_xattr_init(struct super_blo } if (dentry dentry-d_inode) - reiserfs_warning(s, -Created %s on %s - reserved for -xattr storage., -PRIVROOT_NAME, -reiserfs_bdevname -(inode-i_sb)); + reiserfs_info(s, Created %s - + reserved for xattr + storage.\n, + PRIVROOT_NAME); } else if (!dentry-d_inode) { dput(dentry); dentry = NULL; -- Jeff Mahoney SuSE Labs
Re: [PATCH 3/5] reiserfs: rework reiserfs_warning
Jeff, thanks so kindly for cleaning all this up, it must have been very tedious, so extra thanks for it. I will now quibble about some trivia Hans Jeff Mahoney wrote: ReiserFS warnings can be somewhat inconsistent. In some cases: * a unique identifier may be associated with it * the function name may be included * the device may be printed separately This patch aims to make warnings more consistent. reiserfs_warning() prints the device name, so printing it a second time is not required. The function name for a warning is always helpful in debugging, so it is now automatically inserted into the output. Hans has stated that every warning should have a unique identifier. Some cases lack them, others really shouldn't have them. What cases should not have them? reiserfs_warning() now expects an id associated with each message. In the event that it is missing, MISSING_ID is used. In the case where one is simply not desired, NO_ID is used. Both of these are currently #define'd to NULL, but may be changed in the future.
Re: Installing Fedora Core with root on Reiserfs
Edward, please drive this to a solution. Thanks Jeff. Hans Jeff Mahoney wrote: Edward Shishkin wrote: Russell Coker wrote: On Monday 18 July 2005 06:01, Edward Shishkin [EMAIL PROTECTED] wrote: FC4-test3 (and perhaps FC4) installs its own version of grub which seems to interact incorrectly with reiserfs. The problem is that reiserfs.ko module located on reiserfs partition can not be loaded. Firstly there is no situation in which reiserfs.ko will be loaded from a reiserfs partition. Hmmm... actually this is a default situation when installing with root on reiserfs.. If the root file system is reiserfs then reiserfs.ko will (or at least should) be included in the initrd. Right, but initrd is in /boot which is not something separate: it is on the same reiserfs root partition.. The situation you're describing is one that is well tested by now. If the root filesystem is reiserfs, and /boot is a part of it, reiserfs.ko MUST be in the initrd. Otherwise, there is a chicken/egg problem and the system will not boot. The initrd being on a reiserfs filesystem is fine since grub doesn't use any kernel services when it's executing. Grub loads the kernel and the initrd itself before transferring control to the kernel and uses no kernel services to do so. Grub has its own filesystem reading code which gets pointed to during installation. So, if there is truly a problem with this, I'd look at Fedora's mkinitrd. -Jeff -- Jeff Mahoney SuSE Labs
[PATCH] reiserfs: fix deadlock in inode creation failure path w/ default ACL
reiserfs_new_inode() can call iput() with the xattr lock held. This will cause a deadlock to occur when reiserfs_delete_xattrs() is called to clean up. The following patch releases the lock and reacquires it after the iput. This is safe because interaction with xattrs is complete, and the relock is just to balance out the release in the caller. The locking needs some reworking to be more sane, but that's more intrusive and I was just looking to fix this bug. Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3/fs/reiserfs/inode.c linux-2.6.13-rc3.errors/fs/reiserfs/inode.c --- linux-2.6.13-rc3.1/fs/reiserfs/inode.c 2005-07-14 19:43:14.0 -0400 +++ linux-2.6.13-rc3.2/fs/reiserfs/inode.c 2005-07-18 15:21:32.0 -0400 @@ -1980,7 +1978,17 @@ int reiserfs_new_inode(struct reiserfs_t out_inserted_sd: inode-i_nlink = 0; th-t_trans_id = 0; /* so the caller can't use this handle later */ - iput(inode); + + /* If we were inheriting an ACL, we need to release the lock so that +* iput doesn't deadlock in reiserfs_delete_xattrs. The locking +* code really needs to be reworked, but this will take care of it +* for now. -jeffm */ + if (REISERFS_I(dir)-i_acl_default) { + reiserfs_write_unlock_xattrs(dir-i_sb); + iput(inode); + reiserfs_write_lock_xattrs(dir-i_sb); + } else + iput(inode); return err; } -- Jeff Mahoney SuSE Labs
[PATCH 1/5] reiserfs: use more consistent printk formatting
The output format between a warning/error/panic/info/etc changes with which one is used. The following patch makes the messages more internally consistent, but also more consistent with other Linux filesystems. Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3/fs/reiserfs/prints.c linux-2.6.13-rc3.errors/fs/reiserfs/prints.c --- linux-2.6.13-rc3/fs/reiserfs/prints.c 2005-07-13 13:57:32.0 -0400 +++ linux-2.6.13-rc3.errors/fs/reiserfs/prints.c2005-07-14 16:36:47.0 -0400 @@ -269,10 +269,10 @@ void reiserfs_warning(struct super_block { do_reiserfs_warning(fmt); if (sb) - printk(KERN_WARNING ReiserFS: %s: warning: %s\n, - reiserfs_bdevname(sb), error_buf); + printk(KERN_WARNING REISERFS warning (device %s): %s\n, + sb-s_id, error_buf); else - printk(KERN_WARNING ReiserFS: warning: %s\n, error_buf); + printk(KERN_WARNING REISERFS warning: %s\n, error_buf); } /* No newline.. reiserfs_info calls can be followed by printk's */ @@ -280,10 +280,10 @@ void reiserfs_info(struct super_block *s { do_reiserfs_warning(fmt); if (sb) - printk(KERN_NOTICE ReiserFS: %s: %s, - reiserfs_bdevname(sb), error_buf); + printk(KERN_NOTICE REISERFS (device %s): %s, + sb-s_id, error_buf); else - printk(KERN_NOTICE ReiserFS: %s, error_buf); + printk(KERN_NOTICE REISERFS %s:, error_buf); } /* No newline.. reiserfs_printk calls can be followed by printk's */ @@ -298,10 +298,10 @@ void reiserfs_debug(struct super_block * #ifdef CONFIG_REISERFS_CHECK do_reiserfs_warning(fmt); if (s) - printk(KERN_DEBUG ReiserFS: %s: %s\n, - reiserfs_bdevname(s), error_buf); + printk(KERN_DEBUG REISERFS debug (device %s): %s\n, + s-s_id, error_buf); else - printk(KERN_DEBUG ReiserFS: %s\n, error_buf); + printk(KERN_DEBUG REISERFS debug: %s\n, error_buf); #endif } @@ -366,17 +366,17 @@ void reiserfs_panic(struct super_block * void reiserfs_abort(struct super_block *sb, int errno, const char *fmt, ...) { do_reiserfs_warning(fmt); if (reiserfs_error_panic(sb)) { - panic(KERN_CRIT REISERFS: panic (device %s): %s\n, - reiserfs_bdevname(sb), error_buf); + panic(KERN_CRIT REISERFS panic (device %s): %s\n, sb-s_id, + error_buf); } - if (sb-s_flags MS_RDONLY) + if (reiserfs_is_journal_aborted(SB_JOURNAL(sb))) return; - printk(KERN_CRIT REISERFS: abort (device %s): %s\n, - reiserfs_bdevname(sb), error_buf); + printk(KERN_CRIT REISERFS abort (device %s): %s\n, sb-s_id, + error_buf); sb-s_flags |= MS_RDONLY; reiserfs_journal_abort(sb, errno); -- Jeff Mahoney SuSE Labs
Re: Installing Fedora Core with root on Reiserfs
On 7/18/05, Russell Coker [EMAIL PROTECTED] wrote: On Monday 18 July 2005 06:01, Edward Shishkin [EMAIL PROTECTED] wrote: FC4-test3 (and perhaps FC4) installs its own version of grub which seems to interact incorrectly with reiserfs. The problem is that reiserfs.ko module located on reiserfs partition can not be loaded. I can confirm that there is a reiserfs/GRUB problem in the final FC4 release too. (I assume it's the same problem, but I haven't investigated it.) FWIW - evidently not much - the relevant Fedora Bugzilla bug would appear to be 161306.
Re: [PATCH 1/5] reiserfs: use more consistent printk formatting
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hans Reiser wrote: Jeff Mahoney wrote: The output format between a warning/error/panic/info/etc changes with which one is used. The following patch makes the messages more internally consistent, but also more consistent with other Linux filesystems. Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3/fs/reiserfs/prints.c linux-2.6.13-rc3.errors/fs/reiserfs/prints.c --- linux-2.6.13-rc3/fs/reiserfs/prints.c 2005-07-13 13:57:32.0 -0400 +++ linux-2.6.13-rc3.errors/fs/reiserfs/prints.c 2005-07-14 16:36:47.0 -0400 @@ -269,10 +269,10 @@ void reiserfs_warning(struct super_block { do_reiserfs_warning(fmt); if (sb) - printk(KERN_WARNING ReiserFS: %s: warning: %s\n, -reiserfs_bdevname(sb), error_buf); + printk(KERN_WARNING REISERFS warning (device %s): %s\n, +sb-s_id, error_buf); else - printk(KERN_WARNING ReiserFS: warning: %s\n, error_buf); + printk(KERN_WARNING REISERFS warning: %s\n, error_buf); why are you changing it to the harder to read all upper case? It is known from various studies that all uppercase is harder for users to read. My argument is that it makes the subsystem more prominent in a quick visual search, and is easier on the eyes than the mixed case variant. - -Jeff - -- Jeff Mahoney SuSE Labs -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFC3ExoLPWxlyuTD7IRAnYUAKCUN2YK5VSK50jcQgD8y+UfKmvjEQCfYBGE fk+gGoOC9WlFHJ3+AlDwEdI= =qYIP -END PGP SIGNATURE-
Re: [PATCH 3/5] reiserfs: rework reiserfs_warning
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hans Reiser wrote: Jeff, thanks so kindly for cleaning all this up, it must have been very tedious, so extra thanks for it. I will now quibble about some trivia Hans Jeff Mahoney wrote: ReiserFS warnings can be somewhat inconsistent. In some cases: * a unique identifier may be associated with it * the function name may be included * the device may be printed separately This patch aims to make warnings more consistent. reiserfs_warning() prints the device name, so printing it a second time is not required. The function name for a warning is always helpful in debugging, so it is now automatically inserted into the output. Hans has stated that every warning should have a unique identifier. Some cases lack them, others really shouldn't have them. What cases should not have them? I don't think that routine messages should have identifiers associated with them. I guess in a more exact sense, messages that are directly associated with user input, like mount option parsing, finding the superblock, an unfinished reiserfsck, or enabling CONFIG_REISERFS_CHECK. I guess a quick visual search for NO_ID in the patch would be the best way of expressing this. I could be convinced otherwise, and that's why I made two separate #defines for a missing id or deliberately no id. - -Jeff - -- Jeff Mahoney SuSE Labs -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFC3E2uLPWxlyuTD7IRAufMAJ9RB1jrQalthIExa/4h+IouWrjr7gCcC34j wGWoF4EI5kcfAWaL4UScBWo= =mX/a -END PGP SIGNATURE-
Re: [PATCH 1/5] reiserfs: use more consistent printk formatting
Jeff Mahoney wrote: Hans Reiser wrote: Jeff Mahoney wrote: The output format between a warning/error/panic/info/etc changes with which one is used. The following patch makes the messages more internally consistent, but also more consistent with other Linux filesystems. Signed-off-by: Jeff Mahoney [EMAIL PROTECTED] diff -ruNpX dontdiff linux-2.6.13-rc3/fs/reiserfs/prints.c linux-2.6.13-rc3.errors/fs/reiserfs/prints.c --- linux-2.6.13-rc3/fs/reiserfs/prints.c2005-07-13 13:57:32.0 -0400 +++ linux-2.6.13-rc3.errors/fs/reiserfs/prints.c2005-07-14 16:36:47.0 -0400 @@ -269,10 +269,10 @@ void reiserfs_warning(struct super_block { do_reiserfs_warning(fmt); if (sb) -printk(KERN_WARNING ReiserFS: %s: warning: %s\n, - reiserfs_bdevname(sb), error_buf); +printk(KERN_WARNING REISERFS warning (device %s): %s\n, + sb-s_id, error_buf); else -printk(KERN_WARNING ReiserFS: warning: %s\n, error_buf); +printk(KERN_WARNING REISERFS warning: %s\n, error_buf); why are you changing it to the harder to read all upper case? It is known from various studies that all uppercase is harder for users to read. My argument is that it makes the subsystem more prominent in a quick visual search, and is easier on the eyes than the mixed case variant. Please used mixed case, see literature on all uppercase for why. Thanks for your other changes. -Jeff -- Jeff Mahoney SuSE Labs
Re: [PATCH 3/5] reiserfs: rework reiserfs_warning
Jeff Mahoney wrote: Hans Reiser wrote: Jeff, thanks so kindly for cleaning all this up, it must have been very tedious, so extra thanks for it. I will now quibble about some trivia Hans Jeff Mahoney wrote: ReiserFS warnings can be somewhat inconsistent. In some cases: * a unique identifier may be associated with it * the function name may be included * the device may be printed separately This patch aims to make warnings more consistent. reiserfs_warning() prints the device name, so printing it a second time is not required. The function name for a warning is always helpful in debugging, so it is now automatically inserted into the output. Hans has stated that every warning should have a unique identifier. Some cases lack them, others really shouldn't have them. What cases should not have them? I don't think that routine messages should have identifiers associated with them. I guess in a more exact sense, messages that are directly associated with user input, like mount option parsing, finding the superblock, an unfinished reiserfsck, or enabling CONFIG_REISERFS_CHECK. I disagree, please don't remove identifiers. I guess a quick visual search for NO_ID in the patch would be the best way of expressing this. I could be convinced otherwise, and that's why I made two separate #defines for a missing id or deliberately no id. -Jeff -- Jeff Mahoney SuSE Labs