summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-11-21 18:20:38 -0800
committerJeremy Allison <jra@samba.org>2008-11-21 18:20:38 -0800
commit83ff6979f504d50caf725ee62549604630b69be7 (patch)
tree4d3cbfdff6de10a620cbe76ab51908c6d118adb9 /source3/smbd
parentdcc4661d4ab55526444f742a2f9634ec14832054 (diff)
downloadsamba-83ff6979f504d50caf725ee62549604630b69be7.tar.gz
samba-83ff6979f504d50caf725ee62549604630b69be7.tar.bz2
samba-83ff6979f504d50caf725ee62549604630b69be7.zip
Fix the logic bug that caused us to run into kernel oplocks on an open for a stream inside a file with stream_xattr module. On opening the base_fsp we must break existing oplocks.
Jeremy.
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/open.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index a6867e077c..018d104d0b 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -2830,7 +2830,13 @@ NTSTATUS create_file_unixpath(connection_struct *conn,
break;
}
- status = create_file_unixpath(conn, NULL, base, 0,
+ DEBUG(10, ("Recursing into create_file_unixpath for "
+ "base %s\n", base));
+
+ /* This call will break any oplock on the base file,
+ * but will not actually open an underlying fd. */
+
+ status = create_file_unixpath(conn, req, base, 0,
FILE_SHARE_READ
| FILE_SHARE_WRITE
| FILE_SHARE_DELETE,