svn commit: samba r21711 - in branches/SAMBA_3_0_25/source/locking: .

vlendec at samba.org vlendec at samba.org
Mon Mar 5 22:26:59 GMT 2007


Author: vlendec
Date: 2007-03-05 22:26:59 +0000 (Mon, 05 Mar 2007)
New Revision: 21711

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

Log:
Jeremy bugged me to keep 3.0.25 in sync :-)
Modified:
   branches/SAMBA_3_0_25/source/locking/locking.c


Changeset:
Modified: branches/SAMBA_3_0_25/source/locking/locking.c
===================================================================
--- branches/SAMBA_3_0_25/source/locking/locking.c	2007-03-05 22:26:38 UTC (rev 21710)
+++ branches/SAMBA_3_0_25/source/locking/locking.c	2007-03-05 22:26:59 UTC (rev 21711)
@@ -858,15 +858,29 @@
 	return True;
 }
 
+static int pull_delete_on_close_flag(TDB_DATA key, TDB_DATA dbuf,
+				     void *private_data)
+{
+	BOOL *result = (BOOL *)private_data;
+	struct locking_data *data;
+
+	if (dbuf.dsize < sizeof(struct locking_data)) {
+		smb_panic("PANIC: parse_share_modes: buffer too short.\n");
+	}
+
+	data = (struct locking_data *)dbuf.dptr;
+
+	*result = data->u.s.delete_on_close;
+	return 0;
+}
+
 BOOL get_delete_on_close_flag(SMB_DEV_T dev, SMB_INO_T inode)
 {
-	BOOL result;
-	struct share_mode_lock *lck = get_share_mode_lock(NULL, dev, inode, NULL, NULL);
-	if (!lck) {
-		return False;
-	}
-	result = lck->delete_on_close;
-	TALLOC_FREE(lck);
+	TDB_DATA key = locking_key(dev, inode);
+	BOOL result = False;
+
+	tdb_parse_record(tdb, key, pull_delete_on_close_flag,
+			 (void *)&result);
 	return result;
 }
 



More information about the samba-cvs mailing list