patch-2.3.99-pre7 linux/include/linux/mount.h

Next file: linux/include/linux/net.h
Previous file: linux/include/linux/module.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre6/linux/include/linux/mount.h linux/include/linux/mount.h
@@ -10,24 +10,40 @@
  */
 #ifndef _LINUX_MOUNT_H
 #define _LINUX_MOUNT_H
+#ifdef __KERNEL__
 
 struct vfsmount
 {
-  kdev_t mnt_dev;			/* Device this applies to */
+	struct dentry *mnt_mountpoint;	/* dentry of mountpoint */
+	struct dentry *mnt_root;	/* root of the mounted tree */
+	struct vfsmount *mnt_parent;	/* fs we are mounted on */
+	struct list_head mnt_instances;	/* other vfsmounts of the same fs */
+	struct list_head mnt_clash;	/* those who are mounted on (other */
+					/* instances) of the same dentry */
+	struct super_block *mnt_sb;	/* pointer to superblock */
+	struct list_head mnt_mounts;	/* list of children, anchored here */
+	struct list_head mnt_child;	/* and going through their mnt_child */
+	atomic_t mnt_count;
+
   char *mnt_devname;			/* Name of device e.g. /dev/dsk/hda1 */
   char *mnt_dirname;			/* Name of directory mounted on */
-  struct super_block *mnt_sb;		/* pointer to superblock */
 	struct list_head mnt_list;
 };
 
-/* MOUNT_REWRITE: fill these */
 static inline struct vfsmount *mntget(struct vfsmount *mnt)
 {
+	if (mnt)
+		atomic_inc(&mnt->mnt_count);
 	return mnt;
 }
 
 static inline void mntput(struct vfsmount *mnt)
 {
+	if (mnt) {
+		if (atomic_dec_and_test(&mnt->mnt_count))
+			BUG();
+	}
 }
 
+#endif
 #endif /* _LINUX_MOUNT_H */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)