[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-973-gd91edea

Jeremy Allison jra at samba.org
Wed Aug 12 17:28:40 MDT 2009


The branch, master has been updated
       via  d91edeaa94c54a190a0c90bbd63156fdf670c26a (commit)
      from  6a0c2946be947afbb56acbf6444d4a2b48cc06f4 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit d91edeaa94c54a190a0c90bbd63156fdf670c26a
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Aug 12 16:27:17 2009 -0700

    When mapping EA's into a TDB, don't remove the EA
    until the last link to the file is gone (fixes the
    build farm RAW-RENAME test with xattr's in tdb's).
    Jeremy.

-----------------------------------------------------------------------

Summary of changes:
 source3/modules/vfs_xattr_tdb.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/modules/vfs_xattr_tdb.c b/source3/modules/vfs_xattr_tdb.c
index a058c82..55fb141 100644
--- a/source3/modules/vfs_xattr_tdb.c
+++ b/source3/modules/vfs_xattr_tdb.c
@@ -620,6 +620,7 @@ static int xattr_tdb_unlink(vfs_handle_struct *handle,
 	struct db_record *rec;
 	NTSTATUS status;
 	int ret = -1;
+	bool remove_record = false;
 
 	SMB_VFS_HANDLE_GET_DATA(handle, db, struct db_context, return -1);
 
@@ -632,6 +633,10 @@ static int xattr_tdb_unlink(vfs_handle_struct *handle,
 	if (SMB_VFS_STAT(handle->conn, smb_fname_tmp) == -1) {
 		goto out;
 	}
+	if (smb_fname_tmp->st.st_ex_nlink == 1) {
+		/* Only remove record on last link to file. */
+		remove_record = true;
+	}
 
 	ret = SMB_VFS_NEXT_UNLINK(handle, smb_fname_tmp);
 
@@ -639,6 +644,10 @@ static int xattr_tdb_unlink(vfs_handle_struct *handle,
 		goto out;
 	}
 
+	if (!remove_record) {
+		goto out;
+	}
+
 	id = SMB_VFS_FILE_ID_CREATE(handle->conn, &smb_fname_tmp->st);
 
 	rec = xattr_tdb_lock_attrs(talloc_tos(), db, &id);


-- 
Samba Shared Repository


More information about the samba-cvs mailing list