2005-11-07 17:19:07 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								/*
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 *  linux/fs/pnode.h
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 *
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 * (C) Copyright IBM Corporation 2005.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 *	Released under GPL v2.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 *
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								 */
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#ifndef _LINUX_PNODE_H
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define _LINUX_PNODE_H
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#include <linux/list.h>
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-23 19:26:23 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#include "mount.h"
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:33 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-25 01:05:37 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define IS_MNT_SHARED(m) ((m)->mnt.mnt_flags & MNT_SHARED)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define IS_MNT_SLAVE(m) ((m)->mnt_master)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define IS_MNT_NEW(m)  (!(m)->mnt_ns)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define CLEAR_MNT_SHARED(m) ((m)->mnt.mnt_flags &= ~MNT_SHARED)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define IS_MNT_UNBINDABLE(m) ((m)->mnt.mnt_flags & MNT_UNBINDABLE)
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:33 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:50 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_EXPIRE    		0x01
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:20:48 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_SLAVE     		0x02
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-30 01:35:18 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_COPY_UNBINDABLE	0x04
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:50 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_MAKE_SHARED 		0x08
							 | 
						
					
						
							
								
									
										
										
										
											2010-01-16 13:28:47 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_PRIVATE 		0x10
							 | 
						
					
						
							
								
									
										
										
										
											2012-07-31 13:13:04 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_SHARED_TO_SLAVE	0x20
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-22 04:08:05 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_UNPRIVILEGED		0x40
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-30 01:35:18 -07:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								#define CL_COPY_MNT_NS_FILE	0x80
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#define CL_COPY_ALL		(CL_COPY_UNBINDABLE | CL_COPY_MNT_NS_FILE)
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:50 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 20:43:10 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								static inline void set_mnt_shared(struct mount *mnt)
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:50 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								{
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 20:43:10 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
									mnt->mnt.mnt_flags &= ~MNT_SHARED_MASK;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
									mnt->mnt.mnt_flags |= MNT_SHARED;
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:50 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 20:43:10 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void change_mnt_propagation(struct mount *, int);
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-15 10:53:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int propagate_mnt(struct mount *, struct mountpoint *, struct mount *,
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:50 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
										struct list_head *);
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:20:17 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int propagate_umount(struct list_head *);
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 21:35:16 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int propagate_mount_busy(struct mount *, int);
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 19:54:23 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void mnt_release_group_id(struct mount *);
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 23:35:54 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								int get_dominating_id(struct mount *mnt, const struct path *root);
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 22:37:54 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								unsigned int mnt_get_count(struct mount *mnt);
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-15 10:53:28 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void mnt_set_mountpoint(struct mount *, struct mountpoint *,
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 21:28:22 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											struct mount *);
							 | 
						
					
						
							
								
									
										
										
										
											2013-03-16 14:49:45 -04:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								void umount_tree(struct mount *, int);
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 21:24:27 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								struct mount *copy_tree(struct mount *, struct dentry *, int);
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-24 22:00:28 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								bool is_path_reachable(struct mount *, struct dentry *,
							 | 
						
					
						
							
								
									
										
										
										
											2011-11-23 19:34:49 -05:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
											 const struct path *root);
							 | 
						
					
						
							
								
									
										
										
										
											2005-11-07 17:19:07 -05:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#endif /* _LINUX_PNODE_H */
							 |