summaryrefslogtreecommitdiff
path: root/source3/modules/onefs_dir.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-06-01 10:39:30 +1000
committerAndrew Tridgell <tridge@samba.org>2009-06-01 10:39:30 +1000
commitba95882155db4f8c10725f47f70ae482d5343f9a (patch)
tree52c65ddfbcd81f3dcbb3b91183ae043b9c51acd5 /source3/modules/onefs_dir.c
parent67b83d2489788f1899c253fdab554d0998f9c044 (diff)
parent14c13620345dfd9f1e18761f103aa66138bf8907 (diff)
downloadsamba-ba95882155db4f8c10725f47f70ae482d5343f9a.tar.gz
samba-ba95882155db4f8c10725f47f70ae482d5343f9a.tar.bz2
samba-ba95882155db4f8c10725f47f70ae482d5343f9a.zip
Merge branch 'master' of ssh://git.samba.org/data/git/samba
Diffstat (limited to 'source3/modules/onefs_dir.c')
-rw-r--r--source3/modules/onefs_dir.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/source3/modules/onefs_dir.c b/source3/modules/onefs_dir.c
index 47da33fff1..2ab8b86771 100644
--- a/source3/modules/onefs_dir.c
+++ b/source3/modules/onefs_dir.c
@@ -43,7 +43,7 @@
#define RDP_DIRENTRIES_SIZE ((size_t)(RDP_BATCH_SIZE * sizeof(struct dirent)))
static char *rdp_direntries = NULL;
-static SMB_STRUCT_STAT *rdp_stats = NULL;
+static struct stat *rdp_stats = NULL;
static uint64_t *rdp_cookies = NULL;
struct rdp_dir_state {
@@ -113,7 +113,7 @@ rdp_init(struct rdp_dir_state *dsp)
if (!rdp_stats) {
rdp_stats =
- SMB_MALLOC(RDP_BATCH_SIZE * sizeof(SMB_STRUCT_STAT));
+ SMB_MALLOC(RDP_BATCH_SIZE * sizeof(struct stat));
if (!rdp_stats)
return ENOMEM;
}
@@ -367,11 +367,15 @@ onefs_readdir(vfs_handle_struct *handle, SMB_STRUCT_DIR *dirp,
/* Return an entry from cache */
ret_direntp = ((SMB_STRUCT_DIRENT *)dsp->direntries_cursor);
if (sbuf) {
- *sbuf = rdp_stats[dsp->stat_cursor];
+ struct stat onefs_sbuf;
+
+ onefs_sbuf = rdp_stats[dsp->stat_cursor];
+ init_stat_ex_from_onefs_stat(sbuf, &onefs_sbuf);
+
/* readdirplus() sets st_ino field to 0, if it was
* unable to retrieve stat information for that
* particular directory entry. */
- if (sbuf->st_ino == 0)
+ if (sbuf->st_ex_ino == 0)
SET_STAT_INVALID(*sbuf);
}