diff options
author | Jeremy Allison <jra@samba.org> | 2005-06-15 18:37:34 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:57:16 -0500 |
commit | 741b0a97bbf3e2f7ed3292b9508b39edb00d97c1 (patch) | |
tree | 4d87834f1c6a50e4908f9355eca26fee35f920e4 /source3/smbd/dir.c | |
parent | f2f115c2a203c1a7b685ff3795c9e342499c1cc9 (diff) | |
download | samba-741b0a97bbf3e2f7ed3292b9508b39edb00d97c1.tar.gz samba-741b0a97bbf3e2f7ed3292b9508b39edb00d97c1.tar.bz2 samba-741b0a97bbf3e2f7ed3292b9508b39edb00d97c1.zip |
r7617: Fix for bug #2801 - delete veto files was broken with the new
large directory code.
Jeremy.
(This used to be commit f397cc08b5628913af4d7f9c2c6d20c778e5d8ca)
Diffstat (limited to 'source3/smbd/dir.c')
-rw-r--r-- | source3/smbd/dir.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c index b9c6cf8797..072f396b8c 100644 --- a/source3/smbd/dir.c +++ b/source3/smbd/dir.c @@ -1111,13 +1111,29 @@ const char *ReadDirName(struct smb_Dir *dirp, long *poffset) } /******************************************************************* + Rewind to the start. +********************************************************************/ + +void RewindDir(struct smb_Dir *dirp, long *poffset) +{ + SMB_VFS_REWINDDIR(dirp->conn, dirp->dir); + dirp->file_number = 0; + dirp->offset = 0; + *poffset = 0; +} + +/******************************************************************* Seek a dir. ********************************************************************/ void SeekDir(struct smb_Dir *dirp, long offset) { if (offset != dirp->offset) { - SMB_VFS_SEEKDIR(dirp->conn, dirp->dir, offset); + if (offset == 0) { + RewindDir(dirp, &offset); + } else { + SMB_VFS_SEEKDIR(dirp->conn, dirp->dir, offset); + } dirp->offset = offset; } } |