Whamcloud - gitweb
return 128 as filetype for cross-ref entry
[fs/lustre-release.git] / lustre / kernel_patches / patches / hostfs_readdir_large.patch
1 Index: linux-2.6.10/fs/hostfs/hostfs_user.c
2 ===================================================================
3 --- linux-2.6.10.orig/fs/hostfs/hostfs_user.c   2004-12-25 05:35:15.000000000 +0800
4 +++ linux-2.6.10/fs/hostfs/hostfs_user.c        2005-03-31 19:26:03.810175656 +0800
5 @@ -121,13 +121,26 @@
6  {
7         DIR *dir = stream;
8         struct dirent *ent;
9 +        off_t off = 0;
10 +        off_t after_seek = 0;
11 +        off_t after_readdir = 0;
12 +        off_t after_readdir2 = 0;
13  
14         seekdir(dir, *pos);
15 +        after_seek = telldir(dir);
16         ent = readdir(dir);
17 +       after_readdir = telldir(dir);
18 +       if ( after_seek != after_readdir ) {
19 +               off = after_readdir;
20 +       } else {
21 +               readdir(dir);
22 +               after_readdir2 = telldir(dir);
23 +               off = after_readdir2;
24 +       }
25         if(ent == NULL) return(NULL);
26         *len_out = strlen(ent->d_name);
27         *ino_out = ent->d_ino;
28 -       *pos = telldir(dir);
29 +       *pos = off;
30         return(ent->d_name);
31  }
32