As sysfs was kernfs's only user, kernfs has been piggybacking on
CONFIG_SYSFS; however, kernfs is scheduled to grow a new user very
soon.  Introduce a separate config option CONFIG_KERNFS which is to be
selected by kernfs users.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 menu "Pseudo filesystems"
 
 source "fs/proc/Kconfig"
+source "fs/kernfs/Kconfig"
 source "fs/sysfs/Kconfig"
 
 config TMPFS
 
 obj-y                          += quota/
 
 obj-$(CONFIG_PROC_FS)          += proc/
-obj-$(CONFIG_SYSFS)            += sysfs/ kernfs/
+obj-$(CONFIG_KERNFS)           += kernfs/
+obj-$(CONFIG_SYSFS)            += sysfs/
 obj-$(CONFIG_CONFIGFS_FS)      += configfs/
 obj-y                          += devpts/
 
 
--- /dev/null
+#
+# KERNFS should be selected by its users
+#
+
+config KERNFS
+       bool
+       default n
 
 config SYSFS
        bool "sysfs file system support" if EXPERT
        default y
+       select KERNFS
        help
        The sysfs filesystem is a virtual filesystem that the kernel uses to
        export internal kernel objects, their attributes, and their
 
 #endif
 };
 
-#ifdef CONFIG_SYSFS
+#ifdef CONFIG_KERNFS
 
 static inline enum kernfs_node_type kernfs_type(struct kernfs_node *kn)
 {
 
 void kernfs_init(void);
 
-#else  /* CONFIG_SYSFS */
+#else  /* CONFIG_KERNFS */
 
 static inline enum kernfs_node_type kernfs_type(struct kernfs_node *kn)
 { return 0; }  /* whatever */
 
 static inline void kernfs_init(void) { }
 
-#endif /* CONFIG_SYSFS */
+#endif /* CONFIG_KERNFS */
 
 static inline struct kernfs_node *
 kernfs_find_and_get(struct kernfs_node *kn, const char *name)