diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/dcache.c | 3 | ||||
-rw-r--r-- | fs/libfs.c | 10 | ||||
-rw-r--r-- | fs/namespace.c | 6 | ||||
-rw-r--r-- | fs/pnode.c | 9 | ||||
-rw-r--r-- | fs/sysfs/dir.c | 10 |
5 files changed, 14 insertions, 24 deletions
diff --git a/fs/dcache.c b/fs/dcache.c index 6aa635fbfa0a..48b44a714b35 100644 --- a/fs/dcache.c +++ b/fs/dcache.c | |||
@@ -522,8 +522,7 @@ void shrink_dcache_sb(struct super_block * sb) | |||
522 | dentry = list_entry(tmp, struct dentry, d_lru); | 522 | dentry = list_entry(tmp, struct dentry, d_lru); |
523 | if (dentry->d_sb != sb) | 523 | if (dentry->d_sb != sb) |
524 | continue; | 524 | continue; |
525 | list_del(tmp); | 525 | list_move(tmp, &dentry_unused); |
526 | list_add(tmp, &dentry_unused); | ||
527 | } | 526 | } |
528 | 527 | ||
529 | /* | 528 | /* |
diff --git a/fs/libfs.c b/fs/libfs.c index fc785d8befb9..ac02ea602c3d 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
@@ -149,10 +149,9 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
149 | /* fallthrough */ | 149 | /* fallthrough */ |
150 | default: | 150 | default: |
151 | spin_lock(&dcache_lock); | 151 | spin_lock(&dcache_lock); |
152 | if (filp->f_pos == 2) { | 152 | if (filp->f_pos == 2) |
153 | list_del(q); | 153 | list_move(q, &dentry->d_subdirs); |
154 | list_add(q, &dentry->d_subdirs); | 154 | |
155 | } | ||
156 | for (p=q->next; p != &dentry->d_subdirs; p=p->next) { | 155 | for (p=q->next; p != &dentry->d_subdirs; p=p->next) { |
157 | struct dentry *next; | 156 | struct dentry *next; |
158 | next = list_entry(p, struct dentry, d_u.d_child); | 157 | next = list_entry(p, struct dentry, d_u.d_child); |
@@ -164,8 +163,7 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
164 | return 0; | 163 | return 0; |
165 | spin_lock(&dcache_lock); | 164 | spin_lock(&dcache_lock); |
166 | /* next is still alive */ | 165 | /* next is still alive */ |
167 | list_del(q); | 166 | list_move(q, p); |
168 | list_add(q, p); | ||
169 | p = q; | 167 | p = q; |
170 | filp->f_pos++; | 168 | filp->f_pos++; |
171 | } | 169 | } |
diff --git a/fs/namespace.c b/fs/namespace.c index 866430bb024d..b3ed212ea416 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -526,10 +526,8 @@ void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill) | |||
526 | { | 526 | { |
527 | struct vfsmount *p; | 527 | struct vfsmount *p; |
528 | 528 | ||
529 | for (p = mnt; p; p = next_mnt(p, mnt)) { | 529 | for (p = mnt; p; p = next_mnt(p, mnt)) |
530 | list_del(&p->mnt_hash); | 530 | list_move(&p->mnt_hash, kill); |
531 | list_add(&p->mnt_hash, kill); | ||
532 | } | ||
533 | 531 | ||
534 | if (propagate) | 532 | if (propagate) |
535 | propagate_umount(kill); | 533 | propagate_umount(kill); |
diff --git a/fs/pnode.c b/fs/pnode.c index 37b568ed0e05..da42ee61c1df 100644 --- a/fs/pnode.c +++ b/fs/pnode.c | |||
@@ -53,8 +53,7 @@ static int do_make_slave(struct vfsmount *mnt) | |||
53 | if (master) { | 53 | if (master) { |
54 | list_for_each_entry(slave_mnt, &mnt->mnt_slave_list, mnt_slave) | 54 | list_for_each_entry(slave_mnt, &mnt->mnt_slave_list, mnt_slave) |
55 | slave_mnt->mnt_master = master; | 55 | slave_mnt->mnt_master = master; |
56 | list_del(&mnt->mnt_slave); | 56 | list_move(&mnt->mnt_slave, &master->mnt_slave_list); |
57 | list_add(&mnt->mnt_slave, &master->mnt_slave_list); | ||
58 | list_splice(&mnt->mnt_slave_list, master->mnt_slave_list.prev); | 57 | list_splice(&mnt->mnt_slave_list, master->mnt_slave_list.prev); |
59 | INIT_LIST_HEAD(&mnt->mnt_slave_list); | 58 | INIT_LIST_HEAD(&mnt->mnt_slave_list); |
60 | } else { | 59 | } else { |
@@ -283,10 +282,8 @@ static void __propagate_umount(struct vfsmount *mnt) | |||
283 | * umount the child only if the child has no | 282 | * umount the child only if the child has no |
284 | * other children | 283 | * other children |
285 | */ | 284 | */ |
286 | if (child && list_empty(&child->mnt_mounts)) { | 285 | if (child && list_empty(&child->mnt_mounts)) |
287 | list_del(&child->mnt_hash); | 286 | list_move_tail(&child->mnt_hash, &mnt->mnt_hash); |
288 | list_add_tail(&child->mnt_hash, &mnt->mnt_hash); | ||
289 | } | ||
290 | } | 287 | } |
291 | } | 288 | } |
292 | 289 | ||
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 610b5bdbe75b..61c42430cba3 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
@@ -430,10 +430,9 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
430 | i++; | 430 | i++; |
431 | /* fallthrough */ | 431 | /* fallthrough */ |
432 | default: | 432 | default: |
433 | if (filp->f_pos == 2) { | 433 | if (filp->f_pos == 2) |
434 | list_del(q); | 434 | list_move(q, &parent_sd->s_children); |
435 | list_add(q, &parent_sd->s_children); | 435 | |
436 | } | ||
437 | for (p=q->next; p!= &parent_sd->s_children; p=p->next) { | 436 | for (p=q->next; p!= &parent_sd->s_children; p=p->next) { |
438 | struct sysfs_dirent *next; | 437 | struct sysfs_dirent *next; |
439 | const char * name; | 438 | const char * name; |
@@ -455,8 +454,7 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir) | |||
455 | dt_type(next)) < 0) | 454 | dt_type(next)) < 0) |
456 | return 0; | 455 | return 0; |
457 | 456 | ||
458 | list_del(q); | 457 | list_move(q, p); |
459 | list_add(q, p); | ||
460 | p = q; | 458 | p = q; |
461 | filp->f_pos++; | 459 | filp->f_pos++; |
462 | } | 460 | } |