X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fidmapd%2Fidmapd.c;h=b30b69eb72fb04b7555c5086be2adb5f84f72501;hp=cbb0b6afe03d029ffcbe47286f88c618ea3b4408;hb=1bcf67703e5606837853666763c739db91f08fee;hpb=e54fb292fcd9253743fc17ba0af26dcbb0723a5d diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c index cbb0b6a..b30b69e 100644 --- a/utils/idmapd/idmapd.c +++ b/utils/idmapd/idmapd.c @@ -444,7 +444,7 @@ dirscancb(int fd, short which, void *data) { int nent, i; struct dirent **ents; - struct idmap_client *ic; + struct idmap_client *ic, *nextic; char path[PATH_MAX]; struct idmap_clientq *icq = data; @@ -498,7 +498,9 @@ dirscancb(int fd, short which, void *data) } } - TAILQ_FOREACH(ic, icq, ic_next) { + ic = TAILQ_FIRST(icq); + while(ic != NULL) { + nextic=TAILQ_NEXT(ic, ic_next); if (!ic->ic_scanned) { event_del(&ic->ic_event); close(ic->ic_fd); @@ -511,6 +513,7 @@ dirscancb(int fd, short which, void *data) free(ic); } else ic->ic_scanned = 0; + ic = nextic; } out: