On Mon, Sep 08, 2008 at 10:39:51AM -0400, Theodore Tso wrote: > Here's what I've checked into the ext4 patch queue for submission to > mainline at the next merge window. I've added a bit more error > checking in case proc_mkdir() fails and returns NULL. Hopefully, Andrew, will pick up original non-broken patch. > --- a/fs/ext4/mballoc.c > +++ b/fs/ext4/mballoc.c > @@ -2785,14 +2785,19 @@ static int ext4_mb_init_per_dev_proc(struct super_block *sb) > mode_t mode = S_IFREG | S_IRUGO | S_IWUSR; > struct ext4_sb_info *sbi = EXT4_SB(sb); > struct proc_dir_entry *proc; > - char devname[64]; > + char devname[64], *p; > > if (proc_root_ext4 == NULL) { > sbi->s_mb_proc = NULL; > return -EINVAL; > } > bdevname(sb->s_bdev, devname); > + while (p = strchr(p, '/')) > + *p = '!'; > + > sbi->s_mb_proc = proc_mkdir(devname, proc_root_ext4); > + if (!sbi->s_mb_proc) > + goto err_create_dir; > > MB_PROC_HANDLER(EXT4_MB_STATS_NAME, stats); > MB_PROC_HANDLER(EXT4_MB_MAX_TO_SCAN_NAME, max_to_scan); > @@ -2804,7 +2809,6 @@ static int ext4_mb_init_per_dev_proc(struct super_block *sb) > return 0; > > err_out: > - printk(KERN_ERR "EXT4-fs: Unable to create %s\n", devname); > remove_proc_entry(EXT4_MB_GROUP_PREALLOC, sbi->s_mb_proc); > remove_proc_entry(EXT4_MB_STREAM_REQ, sbi->s_mb_proc); > remove_proc_entry(EXT4_MB_ORDER2_REQ, sbi->s_mb_proc); > @@ -2813,6 +2817,8 @@ err_out: > remove_proc_entry(EXT4_MB_STATS_NAME, sbi->s_mb_proc); > remove_proc_entry(devname, proc_root_ext4); > sbi->s_mb_proc = NULL; > +err_create_dir: > + printk(KERN_ERR "EXT4-fs: Unable to create %s\n", devname); > > return -ENOMEM; > } -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html