Pull vfs stable fodder fixes from Al Viro: - acct_on() fix for deadlock caught by overlayfs folks - autofs RCU use-after-free SNAFU (->d_manage() can be called locklessly, so we need to RCU-delay freeing the objects it looks at) - (hopefully) the end of "do we need freeing this dentry RCU-delayed" whack-a-mole. * 'stable-fodder' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: autofs: fix use-after-free in lockless ->d_manage() dcache: sort the freeing-without-RCU-delay mess for good. acct_on(): don't mess with freeze protection
Showing the changes to include/linux (2 of 9 files). Show all
Unified · Split
| @@ -176,7 +176,6 @@ struct dentry_operations { · 175 unmodified lines | ||
| 176 | 176 | * typically using d_splice_alias. */ |
| 177 | 177 | |
| 178 | 178 | #define DCACHE_REFERENCED 0x00000040 /* Recently used, don't discard. */ |
| 179 | −#define DCACHE_RCUACCESS 0x00000080 /* Entry has ever been RCU-visible */ | |
| 180 | 179 | |
| 181 | 180 | #define DCACHE_CANT_MOUNT 0x00000100 |
| 182 | 181 | #define DCACHE_GENOCIDE 0x00000200 |
| @@ -217,6 +216,7 @@ struct dentry_operations { · 34 unmodified lines | ||
| 217 | 216 | |
| 218 | 217 | #define DCACHE_PAR_LOOKUP 0x10000000 /* being looked up (with parent locked shared) */ |
| 219 | 218 | #define DCACHE_DENTRY_CURSOR 0x20000000 |
| 219 | +#define DCACHE_NORCU 0x40000000 /* No RCU delay for freeing */ | |
| 220 | 220 | |
| 221 | 221 | extern seqlock_t rename_lock; |
| 222 | 222 | |
| @@ -87,6 +87,8 @@ extern bool mnt_may_suid(struct vfsmount *mnt); · 86 unmodified lines | ||
| 87 | 87 | |
| 88 | 88 | struct path; |
| 89 | 89 | extern struct vfsmount *clone_private_mount(const struct path *path); |
| 90 | +extern int __mnt_want_write(struct vfsmount *); | |
| 91 | +extern void __mnt_drop_write(struct vfsmount *); | |
| 90 | 92 | |
| 91 | 93 | struct file_system_type; |
| 92 | 94 | extern struct vfsmount *fc_mount(struct fs_context *fc); |