OSDN Git Service

[PATCH] core: use list_move()
authorAkinobu Mita <mita@miraclelinux.com>
Mon, 26 Jun 2006 07:24:40 +0000 (00:24 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 26 Jun 2006 16:58:17 +0000 (09:58 -0700)
This patch converts the combination of list_del(A) and list_add(A, B) to
list_move(A, B).

Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Akinobu Mita <mita@miraclelinux.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/base/power/resume.c
drivers/base/power/suspend.c
fs/dcache.c
fs/libfs.c
fs/namespace.c
fs/pnode.c
fs/sysfs/dir.c
mm/swap.c

index 520679c..826093e 100644 (file)
@@ -53,8 +53,7 @@ void dpm_resume(void)
                struct device * dev = to_device(entry);
 
                get_device(dev);
-               list_del_init(entry);
-               list_add_tail(entry, &dpm_active);
+               list_move_tail(entry, &dpm_active);
 
                up(&dpm_list_sem);
                if (!dev->power.prev_state.event)
@@ -101,8 +100,7 @@ void dpm_power_up(void)
                struct device * dev = to_device(entry);
 
                get_device(dev);
-               list_del_init(entry);
-               list_add_tail(entry, &dpm_active);
+               list_move_tail(entry, &dpm_active);
                resume_device(dev);
                put_device(dev);
        }
index 1a1fe43..69509e0 100644 (file)
@@ -116,12 +116,10 @@ int device_suspend(pm_message_t state)
                /* Check if the device got removed */
                if (!list_empty(&dev->power.entry)) {
                        /* Move it to the dpm_off or dpm_off_irq list */
-                       if (!error) {
-                               list_del(&dev->power.entry);
-                               list_add(&dev->power.entry, &dpm_off);
-                       } else if (error == -EAGAIN) {
-                               list_del(&dev->power.entry);
-                               list_add(&dev->power.entry, &dpm_off_irq);
+                       if (!error)
+                               list_move(&dev->power.entry, &dpm_off);
+                       else if (error == -EAGAIN) {
+                               list_move(&dev->power.entry, &dpm_off_irq);
                                error = 0;
                        }
                }
@@ -139,8 +137,7 @@ int device_suspend(pm_message_t state)
                 */
                while (!list_empty(&dpm_off_irq)) {
                        struct list_head * entry = dpm_off_irq.next;
-                       list_del(entry);
-                       list_add(entry, &dpm_off);
+                       list_move(entry, &dpm_off);
                }
                dpm_resume();
        }
index 6aa635f..48b44a7 100644 (file)
@@ -522,8 +522,7 @@ void shrink_dcache_sb(struct super_block * sb)
                dentry = list_entry(tmp, struct dentry, d_lru);
                if (dentry->d_sb != sb)
                        continue;
-               list_del(tmp);
-               list_add(tmp, &dentry_unused);
+               list_move(tmp, &dentry_unused);
        }
 
        /*
index fc785d8..ac02ea6 100644 (file)
@@ -149,10 +149,9 @@ int dcache_readdir(struct file * filp, void * dirent, filldir_t filldir)
                        /* fallthrough */
                default:
                        spin_lock(&dcache_lock);
-                       if (filp->f_pos == 2) {
-                               list_del(q);
-                               list_add(q, &dentry->d_subdirs);
-                       }
+                       if (filp->f_pos == 2)
+                               list_move(q, &dentry->d_subdirs);
+
                        for (p=q->next; p != &dentry->d_subdirs; p=p->next) {
                                struct dentry *next;
                                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)
                                        return 0;
                                spin_lock(&dcache_lock);
                                /* next is still alive */
-                               list_del(q);
-                               list_add(q, p);
+                               list_move(q, p);
                                p = q;
                                filp->f_pos++;
                        }
index 866430b..b3ed212 100644 (file)
@@ -526,10 +526,8 @@ void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill)
 {
        struct vfsmount *p;
 
-       for (p = mnt; p; p = next_mnt(p, mnt)) {
-               list_del(&p->mnt_hash);
-               list_add(&p->mnt_hash, kill);
-       }
+       for (p = mnt; p; p = next_mnt(p, mnt))
+               list_move(&p->mnt_hash, kill);
 
        if (propagate)
                propagate_umount(kill);
index 37b568e..da42ee6 100644 (file)
@@ -53,8 +53,7 @@ static int do_make_slave(struct vfsmount *mnt)
        if (master) {
                list_for_each_entry(slave_mnt, &mnt->mnt_slave_list, mnt_slave)
                        slave_mnt->mnt_master = master;
-               list_del(&mnt->mnt_slave);
-               list_add(&mnt->mnt_slave, &master->mnt_slave_list);
+               list_move(&mnt->mnt_slave, &master->mnt_slave_list);
                list_splice(&mnt->mnt_slave_list, master->mnt_slave_list.prev);
                INIT_LIST_HEAD(&mnt->mnt_slave_list);
        } else {
@@ -283,10 +282,8 @@ static void __propagate_umount(struct vfsmount *mnt)
                 * umount the child only if the child has no
                 * other children
                 */
-               if (child && list_empty(&child->mnt_mounts)) {
-                       list_del(&child->mnt_hash);
-                       list_add_tail(&child->mnt_hash, &mnt->mnt_hash);
-               }
+               if (child && list_empty(&child->mnt_mounts))
+                       list_move_tail(&child->mnt_hash, &mnt->mnt_hash);
        }
 }
 
index 610b5bd..61c4243 100644 (file)
@@ -430,10 +430,9 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir)
                        i++;
                        /* fallthrough */
                default:
-                       if (filp->f_pos == 2) {
-                               list_del(q);
-                               list_add(q, &parent_sd->s_children);
-                       }
+                       if (filp->f_pos == 2)
+                               list_move(q, &parent_sd->s_children);
+
                        for (p=q->next; p!= &parent_sd->s_children; p=p->next) {
                                struct sysfs_dirent *next;
                                const char * name;
@@ -455,8 +454,7 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir)
                                                 dt_type(next)) < 0)
                                        return 0;
 
-                               list_del(q);
-                               list_add(q, p);
+                               list_move(q, p);
                                p = q;
                                filp->f_pos++;
                        }
index 03ae207..990868a 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -86,8 +86,7 @@ int rotate_reclaimable_page(struct page *page)
        zone = page_zone(page);
        spin_lock_irqsave(&zone->lru_lock, flags);
        if (PageLRU(page) && !PageActive(page)) {
-               list_del(&page->lru);
-               list_add_tail(&page->lru, &zone->inactive_list);
+               list_move_tail(&page->lru, &zone->inactive_list);
                inc_page_state(pgrotated);
        }
        if (!test_clear_page_writeback(page))