smbd: Stop using vfs_Chdir after SMB_VFS_DISCONNECT.
authorIra Cooper <ira@samba.org>
Thu, 15 Jan 2015 16:41:50 +0000 (11:41 -0500)
committerKarolin Seeger <kseeger@samba.org>
Mon, 2 Mar 2015 22:25:27 +0000 (23:25 +0100)
This sequencing is causing problems for vfs_ceph, and likely
other vfs modules.

Signed-off-by: Ira Cooper <ira@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Fri Jan 16 00:13:17 CET 2015 on sn-devel-104

(cherry picked from commit 81464daea71e5fa3067ec7d5f5c69c890c0f7949)

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11115
S3: vfs_Chdir() is called after SMB_VFS_DISCONNECT in
source3/smbd/service.c::close_cnum().

Autobuild-User(v4-0-test): Karolin Seeger <kseeger@samba.org>
Autobuild-Date(v4-0-test): Mon Mar  2 23:25:27 CET 2015 on sn-devel-104

source3/smbd/service.c

index 19c02d6925f56f294feabd6f6d424a71321857ce..6d313388b884952de2d31cb2b1a4c1b32870a75a 100644 (file)
@@ -1128,12 +1128,12 @@ void close_cnum(connection_struct *conn, uint64_t vuid)
                                                        talloc_tos()),
                                 lp_servicename(talloc_tos(), SNUM(conn))));
 
-       /* Call VFS disconnect hook */    
-       SMB_VFS_DISCONNECT(conn);
-
        /* make sure we leave the directory available for unmount */
        vfs_ChDir(conn, "/");
 
+       /* Call VFS disconnect hook */
+       SMB_VFS_DISCONNECT(conn);
+
        /* execute any "postexec = " line */
        if (*lp_postexec(talloc_tos(), SNUM(conn)) &&
            change_to_user(conn, vuid))  {