1 /* 2 * 3 * Definitions for mount interface. This describes the in the kernel build 4 * linkedlist with mounted filesystems. 5 * 6 * Author: Marco van Wieringen <mvw@planets.elm.net> 7 * 8 * Version: $Id: mount.h,v 2.0 1996/11/17 16:48:14 mvw Exp mvw $ 9 * 10 */ 11 #ifndef _LINUX_MOUNT_H 12 #define _LINUX_MOUNT_H 13 #ifdef __KERNEL__ 14 15 #define MNT_NOSUID 1 16 #define MNT_NODEV 2 17 #define MNT_NOEXEC 4 18 19 struct vfsmount 20 { 21 struct list_head mnt_hash; 22 struct vfsmount *mnt_parent; /* fs we are mounted on */ 23 struct dentry *mnt_mountpoint; /* dentry of mountpoint */ 24 struct dentry *mnt_root; /* root of the mounted tree */ 25 struct super_block *mnt_sb; /* pointer to superblock */ 26 struct list_head mnt_mounts; /* list of children, anchored here */ 27 struct list_head mnt_child; /* and going through their mnt_child */ 28 atomic_t mnt_count; 29 int mnt_flags; 30 char *mnt_devname; /* Name of device e.g. /dev/dsk/hda1 */ 31 struct list_head mnt_list; 32 }; 33 mntget(struct vfsmount * mnt)34static inline struct vfsmount *mntget(struct vfsmount *mnt) 35 { 36 if (mnt) 37 atomic_inc(&mnt->mnt_count); 38 return mnt; 39 } 40 41 extern void __mntput(struct vfsmount *mnt); 42 mntput(struct vfsmount * mnt)43static inline void mntput(struct vfsmount *mnt) 44 { 45 if (mnt) { 46 if (atomic_dec_and_test(&mnt->mnt_count)) 47 __mntput(mnt); 48 } 49 } 50 51 #endif 52 #endif /* _LINUX_MOUNT_H */ 53