Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.12-rc7 60 lines 1.4 kB view raw
1/* 2 * 3 * Copyright (C) 2011 Novell Inc. 4 * Copyright (C) 2016 Red Hat, Inc. 5 * 6 * This program is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License version 2 as published by 8 * the Free Software Foundation. 9 */ 10 11struct ovl_config { 12 char *lowerdir; 13 char *upperdir; 14 char *workdir; 15 bool default_permissions; 16 bool redirect_dir; 17}; 18 19/* private information held for overlayfs's superblock */ 20struct ovl_fs { 21 struct vfsmount *upper_mnt; 22 unsigned numlower; 23 struct vfsmount **lower_mnt; 24 struct dentry *workdir; 25 long namelen; 26 /* pathnames of lower and upper dirs, for show_options */ 27 struct ovl_config config; 28 /* creds of process who forced instantiation of super block */ 29 const struct cred *creator_cred; 30 bool tmpfile; 31 bool noxattr; 32 wait_queue_head_t copyup_wq; 33 /* sb common to all layers */ 34 struct super_block *same_sb; 35}; 36 37/* private information held for every overlayfs dentry */ 38struct ovl_entry { 39 struct dentry *__upperdentry; 40 struct ovl_dir_cache *cache; 41 union { 42 struct { 43 u64 version; 44 const char *redirect; 45 bool opaque; 46 bool impure; 47 bool copying; 48 }; 49 struct rcu_head rcu; 50 }; 51 unsigned numlower; 52 struct path lowerstack[]; 53}; 54 55struct ovl_entry *ovl_alloc_entry(unsigned int numlower); 56 57static inline struct dentry *ovl_upperdentry_dereference(struct ovl_entry *oe) 58{ 59 return lockless_dereference(oe->__upperdentry); 60}