svn commit: samba r8180 - in trunk/source/smbd: .
jra at samba.org
jra at samba.org
Wed Jul 6 12:06:02 GMT 2005
Author: jra
Date: 2005-07-06 12:06:01 +0000 (Wed, 06 Jul 2005)
New Revision: 8180
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8180
Log:
Added locking...
Jeremy.
Modified:
trunk/source/smbd/trans2.c
Changeset:
Modified: trunk/source/smbd/trans2.c
===================================================================
--- trunk/source/smbd/trans2.c 2005-07-06 09:50:31 UTC (rev 8179)
+++ trunk/source/smbd/trans2.c 2005-07-06 12:06:01 UTC (rev 8180)
@@ -2828,34 +2828,34 @@
return set_bad_path_error(errno, bad_path, outbuf, ERRDOS,ERRbadpath);
}
+#if 1 /* JRA - What is the cost.. */
{
int i, num_shares;
share_mode_entry *shares;
- BOOL deleted = False;
/* We need to return NT_STATUS_DELETE_PENDING if any
* process has that flag set. */
+ lock_share_entry(conn, sbuf.st_dev, sbuf.st_ino);
+
num_shares = get_share_modes(conn, sbuf.st_dev,
sbuf.st_ino, &shares);
for (i=0; i<num_shares; i++) {
- if ((shares[i].create_options &
- FILE_DELETE_ON_CLOSE) == 0) {
- continue;
+ if ((shares[i].create_options & FILE_DELETE_ON_CLOSE)) {
+ unlock_share_entry(conn, sbuf.st_dev, sbuf.st_ino);
+ SAFE_FREE(shares);
+ return ERROR_NT(NT_STATUS_DELETE_PENDING);
}
- deleted = True;
- break;
}
+ unlock_share_entry(conn, sbuf.st_dev, sbuf.st_ino);
+
if (num_shares > 0) {
SAFE_FREE(shares);
}
-
- if (deleted) {
- return ERROR_NT(NT_STATUS_DELETE_PENDING);
- }
}
+#endif
if (INFO_LEVEL_IS_UNIX(info_level)) {
/* Always do lstat for UNIX calls. */
More information about the samba-cvs
mailing list