svn commit: samba r7540 - in trunk/source/modules: .

jra at samba.org jra at samba.org
Mon Jun 13 16:49:56 GMT 2005


Author: jra
Date: 2005-06-13 16:49:55 +0000 (Mon, 13 Jun 2005)
New Revision: 7540

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=7540

Log:
Patch from core at road-star.jp for bug #2792. Ensure the shadow copy
module hooks seekdir, telldir, rewinddir to match updated large
directory code.
Jeremy.

Modified:
   trunk/source/modules/vfs_shadow_copy.c


Changeset:
Modified: trunk/source/modules/vfs_shadow_copy.c
===================================================================
--- trunk/source/modules/vfs_shadow_copy.c	2005-06-13 15:52:36 UTC (rev 7539)
+++ trunk/source/modules/vfs_shadow_copy.c	2005-06-13 16:49:55 UTC (rev 7540)
@@ -133,6 +133,27 @@
 	return NULL;
 }
 
+static void shadow_copy_seekdir(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *_dirp, long offset)
+{
+	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
+
+	if (offset < dirp->num) {
+		dirp->pos = offset ;
+	}
+}
+
+static long shadow_copy_telldir(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *_dirp)
+{
+	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
+	return( dirp->pos ) ;
+}
+
+static void shadow_copy_rewinddir(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *_dirp)
+{
+	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
+	dirp->pos = 0 ;
+}
+
 int shadow_copy_closedir(vfs_handle_struct *handle, connection_struct *conn, DIR *_dirp)
 {
 	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
@@ -200,6 +221,9 @@
 static vfs_op_tuple shadow_copy_ops[] = {
 	{SMB_VFS_OP(shadow_copy_opendir),		SMB_VFS_OP_OPENDIR,		SMB_VFS_LAYER_TRANSPARENT},
 	{SMB_VFS_OP(shadow_copy_readdir),		SMB_VFS_OP_READDIR,		SMB_VFS_LAYER_TRANSPARENT},
+	{SMB_VFS_OP(shadow_copy_seekdir),		SMB_VFS_OP_SEEKDIR,		SMB_VFS_LAYER_TRANSPARENT},
+	{SMB_VFS_OP(shadow_copy_telldir),		SMB_VFS_OP_TELLDIR,		SMB_VFS_LAYER_TRANSPARENT},
+	{SMB_VFS_OP(shadow_copy_rewinddir),		SMB_VFS_OP_REWINDDIR,		SMB_VFS_LAYER_TRANSPARENT},
 	{SMB_VFS_OP(shadow_copy_closedir),		SMB_VFS_OP_CLOSEDIR,		SMB_VFS_LAYER_TRANSPARENT},
 
 	{SMB_VFS_OP(shadow_copy_get_shadow_copy_data),	SMB_VFS_OP_GET_SHADOW_COPY_DATA,SMB_VFS_LAYER_OPAQUE},



More information about the samba-cvs mailing list