Loading fs/logfs/dev_bdev.c +5 −10 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ #include <linux/bio.h> #include <linux/blkdev.h> #include <linux/buffer_head.h> #include <linux/slab.h> #include <linux/gfp.h> #define PAGE_OFS(ofs) ((ofs) & (PAGE_SIZE-1)) Loading Loading @@ -321,27 +320,23 @@ static const struct logfs_device_ops bd_devops = { .put_device = bdev_put_device, }; int logfs_get_sb_bdev(struct logfs_super *p, struct file_system_type *type, int flags, const char *devname, struct vfsmount *mnt) int logfs_get_sb_bdev(struct logfs_super *p, struct file_system_type *type, const char *devname) { struct block_device *bdev; bdev = open_bdev_exclusive(devname, FMODE_READ|FMODE_WRITE, type); if (IS_ERR(bdev)) { kfree(p); if (IS_ERR(bdev)) return PTR_ERR(bdev); } if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) { int mtdnr = MINOR(bdev->bd_dev); close_bdev_exclusive(bdev, FMODE_READ|FMODE_WRITE); return logfs_get_sb_mtd(p, type, flags, mtdnr, mnt); return logfs_get_sb_mtd(p, mtdnr); } p->s_bdev = bdev; p->s_mtd = NULL; p->s_devops = &bd_devops; return logfs_get_sb_device(p, type, flags, mnt); return 0; } fs/logfs/dev_mtd.c +3 −7 Original line number Diff line number Diff line Loading @@ -265,18 +265,14 @@ static const struct logfs_device_ops mtd_devops = { .put_device = mtd_put_device, }; int logfs_get_sb_mtd(struct logfs_super *s, struct file_system_type *type, int flags, int mtdnr, struct vfsmount *mnt) int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) { struct mtd_info *mtd = get_mtd_device(NULL, mtdnr); if (IS_ERR(mtd)) { kfree(s); if (IS_ERR(mtd)) return PTR_ERR(mtd); } s->s_bdev = NULL; s->s_mtd = mtd; s->s_devops = &mtd_devops; return logfs_get_sb_device(s, type, flags, mnt); return 0; } fs/logfs/logfs.h +6 −12 Original line number Diff line number Diff line Loading @@ -472,29 +472,23 @@ void logfs_compr_exit(void); /* dev_bdev.c */ #ifdef CONFIG_BLOCK int logfs_get_sb_bdev(struct logfs_super *s, struct file_system_type *type, int flags, const char *devname, struct vfsmount *mnt); struct file_system_type *type, const char *devname); #else static inline int logfs_get_sb_bdev(struct logfs_super *s, struct file_system_type *type, int flags, const char *devname, struct vfsmount *mnt) struct file_system_type *type, const char *devname) { kfree(s); return -ENODEV; } #endif /* dev_mtd.c */ #ifdef CONFIG_MTD int logfs_get_sb_mtd(struct logfs_super *s, struct file_system_type *type, int flags, int mtdnr, struct vfsmount *mnt); int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) #else static inline int logfs_get_sb_mtd(struct logfs_super *s, struct file_system_type *type, int flags, int mtdnr, struct vfsmount *mnt) static inline int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) { kfree(s); return -ENODEV; } #endif Loading fs/logfs/super.c +15 −10 Original line number Diff line number Diff line Loading @@ -596,26 +596,31 @@ static int logfs_get_sb(struct file_system_type *type, int flags, { ulong mtdnr; struct logfs_super *super; int err; super = kzalloc(sizeof(*super), GFP_KERNEL); if (!super) return -ENOMEM; if (!devname) return logfs_get_sb_bdev(super, type, flags, devname, mnt); if (strncmp(devname, "mtd", 3)) return logfs_get_sb_bdev(super, type, flags, devname, mnt); { err = logfs_get_sb_bdev(super, type, devname); else if (strncmp(devname, "mtd", 3)) err = logfs_get_sb_bdev(super, type, devname); else { char *garbage; mtdnr = simple_strtoul(devname+3, &garbage, 0); if (*garbage) { kfree(super); return -EINVAL; if (*garbage) err = -EINVAL; else err = logfs_get_sb_mtd(super, mtdnr); } if (err) { kfree(super); return err; } return logfs_get_sb_mtd(super, type, flags, mtdnr, mnt); return logfs_get_sb_device(super, type, flags, mnt); } static struct file_system_type logfs_fs_type = { Loading Loading
fs/logfs/dev_bdev.c +5 −10 Original line number Diff line number Diff line Loading @@ -9,7 +9,6 @@ #include <linux/bio.h> #include <linux/blkdev.h> #include <linux/buffer_head.h> #include <linux/slab.h> #include <linux/gfp.h> #define PAGE_OFS(ofs) ((ofs) & (PAGE_SIZE-1)) Loading Loading @@ -321,27 +320,23 @@ static const struct logfs_device_ops bd_devops = { .put_device = bdev_put_device, }; int logfs_get_sb_bdev(struct logfs_super *p, struct file_system_type *type, int flags, const char *devname, struct vfsmount *mnt) int logfs_get_sb_bdev(struct logfs_super *p, struct file_system_type *type, const char *devname) { struct block_device *bdev; bdev = open_bdev_exclusive(devname, FMODE_READ|FMODE_WRITE, type); if (IS_ERR(bdev)) { kfree(p); if (IS_ERR(bdev)) return PTR_ERR(bdev); } if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) { int mtdnr = MINOR(bdev->bd_dev); close_bdev_exclusive(bdev, FMODE_READ|FMODE_WRITE); return logfs_get_sb_mtd(p, type, flags, mtdnr, mnt); return logfs_get_sb_mtd(p, mtdnr); } p->s_bdev = bdev; p->s_mtd = NULL; p->s_devops = &bd_devops; return logfs_get_sb_device(p, type, flags, mnt); return 0; }
fs/logfs/dev_mtd.c +3 −7 Original line number Diff line number Diff line Loading @@ -265,18 +265,14 @@ static const struct logfs_device_ops mtd_devops = { .put_device = mtd_put_device, }; int logfs_get_sb_mtd(struct logfs_super *s, struct file_system_type *type, int flags, int mtdnr, struct vfsmount *mnt) int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) { struct mtd_info *mtd = get_mtd_device(NULL, mtdnr); if (IS_ERR(mtd)) { kfree(s); if (IS_ERR(mtd)) return PTR_ERR(mtd); } s->s_bdev = NULL; s->s_mtd = mtd; s->s_devops = &mtd_devops; return logfs_get_sb_device(s, type, flags, mnt); return 0; }
fs/logfs/logfs.h +6 −12 Original line number Diff line number Diff line Loading @@ -472,29 +472,23 @@ void logfs_compr_exit(void); /* dev_bdev.c */ #ifdef CONFIG_BLOCK int logfs_get_sb_bdev(struct logfs_super *s, struct file_system_type *type, int flags, const char *devname, struct vfsmount *mnt); struct file_system_type *type, const char *devname); #else static inline int logfs_get_sb_bdev(struct logfs_super *s, struct file_system_type *type, int flags, const char *devname, struct vfsmount *mnt) struct file_system_type *type, const char *devname) { kfree(s); return -ENODEV; } #endif /* dev_mtd.c */ #ifdef CONFIG_MTD int logfs_get_sb_mtd(struct logfs_super *s, struct file_system_type *type, int flags, int mtdnr, struct vfsmount *mnt); int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) #else static inline int logfs_get_sb_mtd(struct logfs_super *s, struct file_system_type *type, int flags, int mtdnr, struct vfsmount *mnt) static inline int logfs_get_sb_mtd(struct logfs_super *s, int mtdnr) { kfree(s); return -ENODEV; } #endif Loading
fs/logfs/super.c +15 −10 Original line number Diff line number Diff line Loading @@ -596,26 +596,31 @@ static int logfs_get_sb(struct file_system_type *type, int flags, { ulong mtdnr; struct logfs_super *super; int err; super = kzalloc(sizeof(*super), GFP_KERNEL); if (!super) return -ENOMEM; if (!devname) return logfs_get_sb_bdev(super, type, flags, devname, mnt); if (strncmp(devname, "mtd", 3)) return logfs_get_sb_bdev(super, type, flags, devname, mnt); { err = logfs_get_sb_bdev(super, type, devname); else if (strncmp(devname, "mtd", 3)) err = logfs_get_sb_bdev(super, type, devname); else { char *garbage; mtdnr = simple_strtoul(devname+3, &garbage, 0); if (*garbage) { kfree(super); return -EINVAL; if (*garbage) err = -EINVAL; else err = logfs_get_sb_mtd(super, mtdnr); } if (err) { kfree(super); return err; } return logfs_get_sb_mtd(super, type, flags, mtdnr, mnt); return logfs_get_sb_device(super, type, flags, mnt); } static struct file_system_type logfs_fs_type = { Loading