aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-10-26 19:19:16 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2014-11-03 15:20:29 -0500
commit946e51f2bf37f1656916eb75bd0742ba33983c28 (patch)
treee3d2672edeec1117ceda1e8e195eaa8d1c0f5135 /fs/ceph
parenta7400222e3eb7d5ce3820d2234905bbeafabd171 (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/ceph')
-rw-r--r--fs/ceph/dir.c8
-rw-r--r--fs/ceph/inode.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
index e6d63f8f98c0..695e7888fef8 100644
--- a/fs/ceph/dir.c
+++ b/fs/ceph/dir.c
@@ -111,7 +111,7 @@ static int fpos_cmp(loff_t l, loff_t r)
111/* 111/*
112 * When possible, we try to satisfy a readdir by peeking at the 112 * When possible, we try to satisfy a readdir by peeking at the
113 * dcache. We make this work by carefully ordering dentries on 113 * dcache. We make this work by carefully ordering dentries on
114 * d_u.d_child when we initially get results back from the MDS, and 114 * d_child when we initially get results back from the MDS, and
115 * falling back to a "normal" sync readdir if any dentries in the dir 115 * falling back to a "normal" sync readdir if any dentries in the dir
116 * are dropped. 116 * are dropped.
117 * 117 *
@@ -147,11 +147,11 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
147 p = parent->d_subdirs.prev; 147 p = parent->d_subdirs.prev;
148 dout(" initial p %p/%p\n", p->prev, p->next); 148 dout(" initial p %p/%p\n", p->prev, p->next);
149 } else { 149 } else {
150 p = last->d_u.d_child.prev; 150 p = last->d_child.prev;
151 } 151 }
152 152
153more: 153more:
154 dentry = list_entry(p, struct dentry, d_u.d_child); 154 dentry = list_entry(p, struct dentry, d_child);
155 di = ceph_dentry(dentry); 155 di = ceph_dentry(dentry);
156 while (1) { 156 while (1) {
157 dout(" p %p/%p %s d_subdirs %p/%p\n", p->prev, p->next, 157 dout(" p %p/%p %s d_subdirs %p/%p\n", p->prev, p->next,
@@ -174,7 +174,7 @@ more:
174 !dentry->d_inode ? " null" : ""); 174 !dentry->d_inode ? " null" : "");
175 spin_unlock(&dentry->d_lock); 175 spin_unlock(&dentry->d_lock);
176 p = p->prev; 176 p = p->prev;
177 dentry = list_entry(p, struct dentry, d_u.d_child); 177 dentry = list_entry(p, struct dentry, d_child);
178 di = ceph_dentry(dentry); 178 di = ceph_dentry(dentry);
179 } 179 }
180 180
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index 7b6139004401..7a1df90c7771 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -1399,7 +1399,7 @@ retry_lookup:
1399 /* reorder parent's d_subdirs */ 1399 /* reorder parent's d_subdirs */
1400 spin_lock(&parent->d_lock); 1400 spin_lock(&parent->d_lock);
1401 spin_lock_nested(&dn->d_lock, DENTRY_D_LOCK_NESTED); 1401 spin_lock_nested(&dn->d_lock, DENTRY_D_LOCK_NESTED);
1402 list_move(&dn->d_u.d_child, &parent->d_subdirs); 1402 list_move(&dn->d_child, &parent->d_subdirs);
1403 spin_unlock(&dn->d_lock); 1403 spin_unlock(&dn->d_lock);
1404 spin_unlock(&parent->d_lock); 1404 spin_unlock(&parent->d_lock);
1405 } 1405 }