am 75e17a89: sdcard: Fix readdir implementation so rewinddir will work correctly

* commit '75e17a8908d52e32f5de85b90b74e156265c60c6':
  sdcard: Fix readdir implementation so rewinddir will work correctly
This commit is contained in:
Mike Lockwood 2011-01-25 18:39:15 -08:00 committed by Android Git Automerger
commit 99f1390957
1 changed files with 7 additions and 1 deletions

View File

@ -845,13 +845,19 @@ void handle_fuse_request(struct fuse *fuse, struct fuse_in_header *hdr, void *da
struct dirent *de;
struct dirhandle *h = id_to_ptr(req->fh);
TRACE("READDIR %p\n", h);
if (req->offset == 0) {
/* rewinddir() might have been called above us, so rewind here too */
TRACE("calling rewinddir()\n");
rewinddir(h->d);
}
de = readdir(h->d);
if (!de) {
fuse_status(fuse, hdr->unique, 0);
return;
}
fde->ino = FUSE_UNKNOWN_INO;
fde->off = 0;
/* increment the offset so we can detect when rewinddir() seeks back to the beginning */
fde->off = req->offset + 1;
fde->type = de->d_type;
fde->namelen = strlen(de->d_name);
memcpy(fde->name, de->d_name, fde->namelen + 1);