Re: [PATCH] reiserfs v3 fixes and features

From: Chris Wright
Date: Tue Apr 06 2004 - 21:01:56 EST


Hi Chris,

* Chris Mason (mason@xxxxxxxx) wrote:
> Most of these are from Jeff Mahoney and I, they include:
>
> bug fixes
> logging optimizations
> data=ordered support
> xattrs
> acls
> quotas
> error messages with device names (based on Oleg's 2.4 patch)
> block allocator improvements

Would you consider adding the bd_claim on external journal bdev I posted
a while back? Hans didn't seem to flat out reject, and you agreed one
journal per bdev was sufficient.

Patch below, updated to 2.6.5-linus, and applies with fuzz atop your
series.linus. I also have the reiserfsprogs update if you're interested.

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net


===== fs/reiserfs/journal.c 1.78 vs edited =====
--- 1.78/fs/reiserfs/journal.c Wed Feb 18 19:42:22 2004
+++ edited/fs/reiserfs/journal.c Tue Apr 6 16:57:04 2004
@@ -1891,10 +1891,13 @@
result = 0;

if( journal -> j_dev_file != NULL ) {
+ if (journal -> j_dev_bd && (super -> s_bdev != journal -> j_dev_bd))
+ bd_release( journal -> j_dev_bd );
result = filp_close( journal -> j_dev_file, NULL );
journal -> j_dev_file = NULL;
journal -> j_dev_bd = NULL;
} else if( journal -> j_dev_bd != NULL ) {
+ bd_release( journal -> j_dev_bd );
result = blkdev_put( journal -> j_dev_bd );
journal -> j_dev_bd = NULL;
}
@@ -1933,8 +1936,17 @@
printk( "sh-458: journal_init_dev: cannot init journal device\n '%s': %i",
__bdevname(jdev, b), result );
return result;
- } else if (jdev != super->s_dev)
+ } else if (jdev != super->s_dev) {
+ result = bd_claim(journal->j_dev_bd, journal);
+ if (result) {
+ printk("%s: unable to claim %s\n", __func__,
+ bdevname(journal->j_dev_bd, b));
+ blkdev_put(journal->j_dev_bd);
+ journal->j_dev_bd = NULL;
+ return result;
+ }
set_blocksize(journal->j_dev_bd, super->s_blocksize);
+ }
return 0;
}

@@ -1947,6 +1959,17 @@
} else {
/* ok */
journal->j_dev_bd = I_BDEV(jdev_inode);
+ if (super->s_bdev != journal->j_dev_bd) {
+ result = bd_claim(journal->j_dev_bd, journal);
+ if (result) {
+ printk("%s: unable to claim %s\n", __func__,
+ bdevname(journal->j_dev_bd, b));
+ filp_close(journal->j_dev_file, NULL);
+ journal->j_dev_file = NULL;
+ journal->j_dev_bd = NULL;
+ return result;
+ }
+ }
set_blocksize(journal->j_dev_bd, super->s_blocksize);
}
} else {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/