summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/smbsrv/smb_fsops.c
diff options
context:
space:
mode:
authorGordon Ross <gwr@nexenta.com>2012-10-10 20:07:26 -0400
committerGordon Ross <gwr@nexenta.com>2013-02-11 23:47:44 -0500
commitccc71be50bb49efb4e31004c77fb3e065e9c0596 (patch)
tree3d31fef3b3ec173d505bc1288177501b2026bdc7 /usr/src/uts/common/fs/smbsrv/smb_fsops.c
parentbfbce3c1273efa22c185ea2995c57c37163fd7c3 (diff)
downloadillumos-gate-ccc71be50bb49efb4e31004c77fb3e065e9c0596.tar.gz
3523 SMB NT Notify returning too soon
Reviewed by: Albert Lee <trisk@nexenta.com> Reviewed by: Dan McDonald <danmcd@nexenta.com> Reviewed by: Yakov Zaytsev <yakov@nexenta.com> Approved by: Richard Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src/uts/common/fs/smbsrv/smb_fsops.c')
-rw-r--r--usr/src/uts/common/fs/smbsrv/smb_fsops.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/usr/src/uts/common/fs/smbsrv/smb_fsops.c b/usr/src/uts/common/fs/smbsrv/smb_fsops.c
index 68e32246cd..f9ec3fa674 100644
--- a/usr/src/uts/common/fs/smbsrv/smb_fsops.c
+++ b/usr/src/uts/common/fs/smbsrv/smb_fsops.c
@@ -20,6 +20,7 @@
*/
/*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright 2012 Nexenta Systems, Inc. All rights reserved.
*/
#include <sys/sid.h>
@@ -423,7 +424,8 @@ smb_fsop_create_stream(smb_request_t *sr, cred_t *cr,
/* notify change to the unnamed stream */
if (rc == 0)
- smb_node_notify_change(dnode);
+ smb_node_notify_change(dnode,
+ FILE_ACTION_ADDED_STREAM, fname);
return (rc);
}
@@ -679,9 +681,10 @@ smb_fsop_remove(
rc = smb_vop_stream_remove(fnode->vp, name, flags, cr);
/* notify change to the unnamed stream */
- if ((rc == 0) && fnode->n_dnode)
- smb_node_notify_change(fnode->n_dnode);
-
+ if ((rc == 0) && fnode->n_dnode) {
+ smb_node_notify_change(fnode->n_dnode,
+ FILE_ACTION_REMOVED_STREAM, fnode->od_name);
+ }
} else if (smb_is_stream_name(name)) {
smb_stream_parse_name(name, fname, sname);
@@ -710,8 +713,10 @@ smb_fsop_remove(
smb_node_release(fnode);
/* notify change to the unnamed stream */
- if (rc == 0)
- smb_node_notify_change(dnode);
+ if (rc == 0) {
+ smb_node_notify_change(dnode,
+ FILE_ACTION_REMOVED_STREAM, fname);
+ }
} else {
rc = smb_vop_remove(dnode->vp, name, flags, cr);