Eric W. Biederman
80b5dce8c5
vfs: Add a function to lazily unmount all mounts from any dentry.
...
The new function detach_mounts comes in two pieces. The first piece
is a static inline test of d_mounpoint that returns immediately
without taking any locks if d_mounpoint is not set. In the common
case when mountpoints are absent this allows the vfs to continue
running with it's same cacheline foot print.
The second piece of detach_mounts __detach_mounts actually does the
work and it assumes that a mountpoint is present so it is slow and
takes namespace_sem for write, and then locks the mount hash (aka
mount_lock) after a struct mountpoint has been found.
With those two locks held each entry on the list of mounts on a
mountpoint is selected and lazily unmounted until all of the mount
have been lazily unmounted.
v7: Wrote a proper change description and removed the changelog
documenting deleted wrong turns.
Signed-off-by: Eric W. Biederman <ebiederman@twitter.com >
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
2014-10-09 02:38:55 -04:00
..
2014-06-12 10:30:18 -07:00
2014-08-08 15:57:24 -07:00
2014-06-12 10:30:18 -07:00
2014-07-29 10:14:36 -07:00
2014-10-09 02:38:52 -04:00
2014-08-08 15:57:20 -07:00
2014-08-08 15:57:24 -07:00
2014-09-19 13:10:53 -07:00
2014-09-26 08:10:35 -07:00
2014-08-13 17:43:29 -06:00
2014-09-16 06:48:20 -05:00
2014-08-08 15:57:20 -07:00
2014-06-04 16:53:53 -07:00
2014-08-08 15:57:25 -07:00
2014-07-09 16:58:21 -07:00
2014-06-06 16:08:14 -07:00
2014-08-08 15:57:27 -07:00
2014-05-06 17:38:00 -04:00
2014-06-04 16:54:14 -07:00
2014-08-08 15:57:18 -07:00
2014-08-08 15:57:24 -07:00
2014-06-04 16:54:14 -07:00
2014-07-15 22:40:22 +02:00
2014-08-19 23:16:51 +02:00
2014-09-03 09:37:30 -04:00
2014-09-02 00:22:24 -07:00
2014-06-12 10:30:18 -07:00
2014-04-04 15:39:39 -07:00
2014-09-17 22:41:40 +01:00
2014-09-26 21:16:51 -04:00
2014-09-12 20:58:55 +01:00
2014-05-06 17:38:00 -04:00
2014-06-12 10:30:18 -07:00
2014-08-07 14:40:09 -04:00
2014-08-08 15:57:22 -07:00
2014-06-04 16:54:11 -07:00
2014-08-19 18:29:30 +02:00
2014-05-21 10:26:13 +02:00
2014-08-28 22:22:29 -04:00
2014-08-08 18:13:21 -07:00
2014-06-12 10:30:18 -07:00
2014-07-21 10:07:25 -07:00
2014-09-08 12:03:32 -04:00
2014-08-06 18:01:12 -07:00
2014-08-08 15:57:20 -07:00
2014-06-04 16:54:21 -07:00
2014-09-18 13:04:22 -04:00
2014-07-12 18:43:42 -04:00
2014-09-08 12:02:03 -04:00
2014-09-26 08:10:34 -07:00
2014-09-10 15:42:12 -07:00
2014-08-06 18:01:12 -07:00
2014-09-26 08:10:34 -07:00
2014-08-08 15:57:25 -07:00
2014-03-13 10:14:33 -04:00
2014-09-26 08:10:35 -07:00
2014-08-08 15:57:25 -07:00
2014-03-13 10:14:33 -04:00
2014-08-08 15:57:26 -07:00
2014-07-15 22:40:23 +02:00
2014-08-08 15:57:18 -07:00
2014-08-13 17:45:40 -06:00
2014-08-08 15:57:25 -07:00
2014-08-06 18:01:13 -07:00
2014-06-03 08:11:18 -07:00
2014-05-06 17:38:00 -04:00
2014-07-31 15:52:51 +03:00
2014-09-04 21:37:41 +02:00
2014-09-26 21:17:52 -04:00
2014-09-02 12:12:53 +10:00
2014-09-04 16:54:47 -04:00
2014-03-27 09:52:54 -07:00
2014-06-10 13:57:22 -07:00
2014-08-07 14:40:09 -04:00
2014-06-05 08:05:29 -07:00
2014-06-04 16:54:21 -07:00
2014-04-03 16:21:16 -07:00
2014-06-12 10:30:18 -07:00
2014-09-22 08:41:16 -07:00
2014-03-04 08:05:21 +00:00
2014-07-11 13:53:04 +03:00
2014-04-22 08:23:58 -04:00
2014-07-23 15:10:54 -07:00
2014-10-09 02:38:54 -04:00
2014-09-26 21:16:51 -04:00
2014-06-06 16:08:16 -07:00
2014-09-10 15:42:12 -07:00
2014-08-08 15:57:23 -07:00
2014-08-08 15:57:31 -07:00
2014-06-12 10:30:18 -07:00
2014-05-06 17:31:10 -04:00
2014-04-03 16:21:05 -07:00
2014-08-07 14:40:09 -04:00
2014-07-16 15:10:39 +02:00
2014-08-08 15:57:31 -07:00
2014-08-07 14:40:09 -04:00
2014-06-04 16:53:55 -07:00
2014-08-22 09:58:22 -04:00
2014-08-07 14:40:08 -04:00
2014-06-25 22:08:29 -04:00
2014-10-09 02:38:55 -04:00
2014-06-04 16:54:02 -07:00
2014-10-09 02:38:54 -04:00
2014-10-09 02:38:55 -04:00
2014-08-01 02:36:04 -04:00
2014-05-06 17:39:42 -04:00
2014-08-30 18:31:41 -04:00
2014-04-01 23:19:08 -04:00
2014-05-06 13:58:42 -04:00
2014-07-29 18:08:50 -07:00
2014-05-06 17:37:55 -04:00
2014-06-04 16:53:52 -07:00
2014-07-03 09:21:54 -07:00
2014-06-12 00:28:09 -04:00
2014-08-13 17:45:40 -06:00
2014-09-05 08:16:21 -07:00
2014-07-23 10:18:02 -07:00
2014-07-23 15:10:55 -07:00