Message ID | 1442307754-13233-2-git-send-email-yangds.fnst@cn.fujitsu.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Sep 15, 2015 at 05:01:56PM +0800, Dongsheng Yang wrote: > There are some filesystems are running on char devs, such > as ubifs. So we need a field in super_block to hold a > reference to the char device. We only care about the block device to get a device number to return in st.st_dev. And while filesystem literally run on top of a block device that is not the case of a character device - you might use a chardev to identify a device to mount but it'll never use the actual char device. So please don't bloat the superblock with this. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sat 03-10-15 23:31:19, Christoph Hellwig wrote: > On Tue, Sep 15, 2015 at 05:01:56PM +0800, Dongsheng Yang wrote: > > There are some filesystems are running on char devs, such > > as ubifs. So we need a field in super_block to hold a > > reference to the char device. > > We only care about the block device to get a device number to return > in st.st_dev. And while filesystem literally run on top of a block > device that is not the case of a character device - you might use a > chardev to identify a device to mount but it'll never use the actual > char device. > > So please don't bloat the superblock with this. Hum, interesting idea. You're right that using anon bdev ubifs got assigned in set_anon_super() would work as well. It may be slightly confusing for quota-tools usage where specifying char device on command line would not work (specifying block device to identify filesystem works there). But using mount point would work fine so the situation would be the same as with network filesystems. We could even add a translation in quota-tools to convert char device to corresponding anon block device if there's a reasonably simple way to do that in userspace or we could translate in quotactl code in kernel if that's any easier. But currently I don't see a way how we could easily do either of those. Honza
diff --git a/include/linux/fs.h b/include/linux/fs.h index 84b783f..9896b62 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1313,6 +1313,7 @@ struct super_block { struct hlist_bl_head s_anon; /* anonymous dentries for (nfs) exporting */ struct list_head s_mounts; /* list of mounts; _not_ for fs use */ struct block_device *s_bdev; + struct cdev *s_cdev; struct backing_dev_info *s_bdi; struct mtd_info *s_mtd; struct hlist_node s_instances;
There are some filesystems are running on char devs, such as ubifs. So we need a field in super_block to hold a reference to the char device. Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> --- include/linux/fs.h | 1 + 1 file changed, 1 insertion(+)