diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-10-26 19:19:16 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-03 15:20:29 -0500 |
commit | 946e51f2bf37f1656916eb75bd0742ba33983c28 (patch) | |
tree | e3d2672edeec1117ceda1e8e195eaa8d1c0f5135 /fs/autofs4 | |
parent | a7400222e3eb7d5ce3820d2234905bbeafabd171 (diff) |
move d_rcu from overlapping d_child to overlapping d_alias
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/autofs4')
-rw-r--r-- | fs/autofs4/expire.c | 12 | ||||
-rw-r--r-- | fs/autofs4/root.c | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c index 683a5b9ce22a..dcdec6fd33c6 100644 --- a/fs/autofs4/expire.c +++ b/fs/autofs4/expire.c | |||
@@ -85,7 +85,7 @@ static struct dentry *get_next_positive_subdir(struct dentry *prev, | |||
85 | spin_lock(&root->d_lock); | 85 | spin_lock(&root->d_lock); |
86 | 86 | ||
87 | if (prev) | 87 | if (prev) |
88 | next = prev->d_u.d_child.next; | 88 | next = prev->d_child.next; |
89 | else { | 89 | else { |
90 | prev = dget_dlock(root); | 90 | prev = dget_dlock(root); |
91 | next = prev->d_subdirs.next; | 91 | next = prev->d_subdirs.next; |
@@ -99,13 +99,13 @@ cont: | |||
99 | return NULL; | 99 | return NULL; |
100 | } | 100 | } |
101 | 101 | ||
102 | q = list_entry(next, struct dentry, d_u.d_child); | 102 | q = list_entry(next, struct dentry, d_child); |
103 | 103 | ||
104 | spin_lock_nested(&q->d_lock, DENTRY_D_LOCK_NESTED); | 104 | spin_lock_nested(&q->d_lock, DENTRY_D_LOCK_NESTED); |
105 | /* Already gone or negative dentry (under construction) - try next */ | 105 | /* Already gone or negative dentry (under construction) - try next */ |
106 | if (!d_count(q) || !simple_positive(q)) { | 106 | if (!d_count(q) || !simple_positive(q)) { |
107 | spin_unlock(&q->d_lock); | 107 | spin_unlock(&q->d_lock); |
108 | next = q->d_u.d_child.next; | 108 | next = q->d_child.next; |
109 | goto cont; | 109 | goto cont; |
110 | } | 110 | } |
111 | dget_dlock(q); | 111 | dget_dlock(q); |
@@ -155,13 +155,13 @@ again: | |||
155 | goto relock; | 155 | goto relock; |
156 | } | 156 | } |
157 | spin_unlock(&p->d_lock); | 157 | spin_unlock(&p->d_lock); |
158 | next = p->d_u.d_child.next; | 158 | next = p->d_child.next; |
159 | p = parent; | 159 | p = parent; |
160 | if (next != &parent->d_subdirs) | 160 | if (next != &parent->d_subdirs) |
161 | break; | 161 | break; |
162 | } | 162 | } |
163 | } | 163 | } |
164 | ret = list_entry(next, struct dentry, d_u.d_child); | 164 | ret = list_entry(next, struct dentry, d_child); |
165 | 165 | ||
166 | spin_lock_nested(&ret->d_lock, DENTRY_D_LOCK_NESTED); | 166 | spin_lock_nested(&ret->d_lock, DENTRY_D_LOCK_NESTED); |
167 | /* Negative dentry - try next */ | 167 | /* Negative dentry - try next */ |
@@ -489,7 +489,7 @@ found: | |||
489 | spin_lock(&sbi->lookup_lock); | 489 | spin_lock(&sbi->lookup_lock); |
490 | spin_lock(&expired->d_parent->d_lock); | 490 | spin_lock(&expired->d_parent->d_lock); |
491 | spin_lock_nested(&expired->d_lock, DENTRY_D_LOCK_NESTED); | 491 | spin_lock_nested(&expired->d_lock, DENTRY_D_LOCK_NESTED); |
492 | list_move(&expired->d_parent->d_subdirs, &expired->d_u.d_child); | 492 | list_move(&expired->d_parent->d_subdirs, &expired->d_child); |
493 | spin_unlock(&expired->d_lock); | 493 | spin_unlock(&expired->d_lock); |
494 | spin_unlock(&expired->d_parent->d_lock); | 494 | spin_unlock(&expired->d_parent->d_lock); |
495 | spin_unlock(&sbi->lookup_lock); | 495 | spin_unlock(&sbi->lookup_lock); |
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index d76d083f2f06..0822c9eacc56 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c | |||
@@ -687,7 +687,7 @@ static void autofs_clear_leaf_automount_flags(struct dentry *dentry) | |||
687 | /* only consider parents below dentrys in the root */ | 687 | /* only consider parents below dentrys in the root */ |
688 | if (IS_ROOT(parent->d_parent)) | 688 | if (IS_ROOT(parent->d_parent)) |
689 | return; | 689 | return; |
690 | d_child = &dentry->d_u.d_child; | 690 | d_child = &dentry->d_child; |
691 | /* Set parent managed if it's becoming empty */ | 691 | /* Set parent managed if it's becoming empty */ |
692 | if (d_child->next == &parent->d_subdirs && | 692 | if (d_child->next == &parent->d_subdirs && |
693 | d_child->prev == &parent->d_subdirs) | 693 | d_child->prev == &parent->d_subdirs) |