[PATCH] smbd: Remove unused code for dos attributes in stat struct

Christof Schmitt cs at samba.org
Thu Apr 17 14:51:29 MDT 2014


>From fba9c5c47c650e20848bedab350bd7184e734f69 Mon Sep 17 00:00:00 2001
From: Christof Schmitt <cs at samba.org>
Date: Thu, 17 Apr 2014 13:46:38 -0700
Subject: [PATCH] smbd: Remove unused code for dos attributes in stat struct

This code is unused since the move to the waf build system.

Signed-off-by: Christof Schmitt <cs at samba.org>
---
 source3/smbd/dosmode.c |  139 ++----------------------------------------------
 1 files changed, 4 insertions(+), 135 deletions(-)

diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c
index 831f6d0..9d0efce 100644
--- a/source3/smbd/dosmode.c
+++ b/source3/smbd/dosmode.c
@@ -541,115 +541,6 @@ uint32 dos_mode_msdfs(connection_struct *conn,
 	return(result);
 }
 
-#ifdef HAVE_STAT_DOS_FLAGS
-/****************************************************************************
- Convert dos attributes (FILE_ATTRIBUTE_*) to dos stat flags (UF_*)
-****************************************************************************/
-
-int dos_attributes_to_stat_dos_flags(uint32_t dosmode)
-{
-	uint32_t dos_stat_flags = 0;
-
-	if (dosmode & FILE_ATTRIBUTE_ARCHIVE)
-		dos_stat_flags |= UF_DOS_ARCHIVE;
-	if (dosmode & FILE_ATTRIBUTE_HIDDEN)
-		dos_stat_flags |= UF_DOS_HIDDEN;
-	if (dosmode & FILE_ATTRIBUTE_READONLY)
-		dos_stat_flags |= UF_DOS_RO;
-	if (dosmode & FILE_ATTRIBUTE_SYSTEM)
-		dos_stat_flags |= UF_DOS_SYSTEM;
-	if (dosmode & FILE_ATTRIBUTE_NONINDEXED)
-		dos_stat_flags |= UF_DOS_NOINDEX;
-
-	return dos_stat_flags;
-}
-
-/****************************************************************************
- Gets DOS attributes, accessed via st_ex_flags in the stat struct.
-****************************************************************************/
-
-static bool get_stat_dos_flags(connection_struct *conn,
-			       const struct smb_filename *smb_fname,
-			       uint32_t *dosmode)
-{
-	SMB_ASSERT(VALID_STAT(smb_fname->st));
-	SMB_ASSERT(dosmode);
-
-	if (!lp_store_dos_attributes(SNUM(conn))) {
-		return false;
-	}
-
-	DEBUG(5, ("Getting stat dos attributes for %s.\n",
-		  smb_fname_str_dbg(smb_fname)));
-
-	if (smb_fname->st.st_ex_flags & UF_DOS_ARCHIVE)
-		*dosmode |= FILE_ATTRIBUTE_ARCHIVE;
-	if (smb_fname->st.st_ex_flags & UF_DOS_HIDDEN)
-		*dosmode |= FILE_ATTRIBUTE_HIDDEN;
-	if (smb_fname->st.st_ex_flags & UF_DOS_RO)
-		*dosmode |= FILE_ATTRIBUTE_READONLY;
-	if (smb_fname->st.st_ex_flags & UF_DOS_SYSTEM)
-		*dosmode |= FILE_ATTRIBUTE_SYSTEM;
-	if (smb_fname->st.st_ex_flags & UF_DOS_NOINDEX)
-		*dosmode |= FILE_ATTRIBUTE_NONINDEXED;
-	if (smb_fname->st.st_ex_flags & FILE_ATTRIBUTE_SPARSE)
-		*dosmode |= FILE_ATTRIBUTE_SPARSE;
-	if (S_ISDIR(smb_fname->st.st_ex_mode))
-		*dosmode |= FILE_ATTRIBUTE_DIRECTORY;
-
-	*dosmode |= set_link_read_only_flag(&smb_fname->st);
-
-	return true;
-}
-
-/****************************************************************************
- Sets DOS attributes, stored in st_ex_flags of the inode.
-****************************************************************************/
-
-static bool set_stat_dos_flags(connection_struct *conn,
-			       const struct smb_filename *smb_fname,
-			       uint32_t dosmode,
-			       bool *attributes_changed)
-{
-	uint32_t new_flags = 0;
-	int error = 0;
-
-	SMB_ASSERT(VALID_STAT(smb_fname->st));
-	SMB_ASSERT(attributes_changed);
-
-	*attributes_changed = false;
-
-	if (!lp_store_dos_attributes(SNUM(conn))) {
-		return false;
-	}
-
-	DEBUG(5, ("Setting stat dos attributes for %s.\n",
-		  smb_fname_str_dbg(smb_fname)));
-
-	new_flags = (smb_fname->st.st_ex_flags & ~UF_DOS_FLAGS) |
-		     dos_attributes_to_stat_dos_flags(dosmode);
-
-	/* Return early if no flags changed. */
-	if (new_flags == smb_fname->st.st_ex_flags)
-		return true;
-
-	DEBUG(5, ("Setting stat dos attributes=0x%x, prev=0x%x\n", new_flags,
-		  smb_fname->st.st_ex_flags));
-
-	/* Set new flags with chflags. */
-	error = SMB_VFS_CHFLAGS(conn, smb_fname->base_name, new_flags);
-	if (error) {
-		DEBUG(0, ("Failed setting new stat dos attributes (0x%x) on "
-			  "file %s! errno=%d\n", new_flags,
-			  smb_fname_str_dbg(smb_fname), errno));
-		return false;
-	}
-
-	*attributes_changed = true;
-	return true;
-}
-#endif /* HAVE_STAT_DOS_FLAGS */
-
 /*
  * check whether a file or directory is flagged as compressed.
  */
@@ -693,7 +584,7 @@ err_out:
 uint32 dos_mode(connection_struct *conn, struct smb_filename *smb_fname)
 {
 	uint32 result = 0;
-	bool offline, used_stat_dos_flags = false;
+	bool offline;
 
 	DEBUG(8,("dos_mode: %s\n", smb_fname_str_dbg(smb_fname)));
 
@@ -718,14 +609,9 @@ uint32 dos_mode(connection_struct *conn, struct smb_filename *smb_fname)
 		}
 	}
 
-#ifdef HAVE_STAT_DOS_FLAGS
-	used_stat_dos_flags = get_stat_dos_flags(conn, smb_fname, &result);
-#endif
-	if (!used_stat_dos_flags) {
-		/* Get the DOS attributes from an EA by preference. */
-		if (!get_ea_dos_attribute(conn, smb_fname, &result)) {
-			result |= dos_mode_from_sbuf(conn, smb_fname);
-		}
+	/* Get the DOS attributes from an EA by preference. */
+	if (!get_ea_dos_attribute(conn, smb_fname, &result)) {
+		result |= dos_mode_from_sbuf(conn, smb_fname);
 	}
 
 	offline = SMB_VFS_IS_OFFLINE(conn, smb_fname, &smb_fname->st);
@@ -827,23 +713,6 @@ int file_set_dosmode(connection_struct *conn, struct smb_filename *smb_fname,
 
 	smb_fname->st.st_ex_btime = new_create_timespec;
 
-#ifdef HAVE_STAT_DOS_FLAGS
-	{
-		bool attributes_changed;
-
-		if (set_stat_dos_flags(conn, smb_fname, dosmode,
-				       &attributes_changed))
-		{
-			if (!newfile && attributes_changed) {
-				notify_fname(conn, NOTIFY_ACTION_MODIFIED,
-				    FILE_NOTIFY_CHANGE_ATTRIBUTES,
-				    smb_fname->base_name);
-			}
-			smb_fname->st.st_ex_mode = unixmode;
-			return 0;
-		}
-	}
-#endif
 	/* Store the DOS attributes in an EA by preference. */
 	if (lp_store_dos_attributes(SNUM(conn))) {
 		/*
-- 
1.7.1



More information about the samba-technical mailing list