X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=fs%2Fsysfs%2Fdir.c;h=61c42430cba3159e5cce02d8675cb2d8c1bec14b;hb=aba9aac78817d88aa2b223f1aedf1e9815ae97b8;hp=610b5bdbe75bc1a04c870a3def601b9b666a1772;hpb=1b627d173e0e1014298b92311f869eed53963bf3;p=linux-2.6-microblaze.git 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) 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++; }