X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fsysfs%2Fdir.c;h=610b5bdbe75bc1a04c870a3def601b9b666a1772;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=61c42430cba3159e5cce02d8675cb2d8c1bec14b;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index 61c42430c..610b5bdbe 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c @@ -430,9 +430,10 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir) i++; /* fallthrough */ default: - if (filp->f_pos == 2) - list_move(q, &parent_sd->s_children); - + if (filp->f_pos == 2) { + list_del(q); + list_add(q, &parent_sd->s_children); + } for (p=q->next; p!= &parent_sd->s_children; p=p->next) { struct sysfs_dirent *next; const char * name; @@ -454,7 +455,8 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir) dt_type(next)) < 0) return 0; - list_move(q, p); + list_del(q); + list_add(q, p); p = q; filp->f_pos++; }