[PATCH] smbd: Change logging when SET_OFFLINE is not supported
Christof Schmitt
christof.schmitt at us.ibm.com
Wed Jun 5 18:08:03 MDT 2013
A client can send a request to set the OFFLINE attribute. In the default
code this is not supported and triggers a log message each time. Change
this to only log with level 0 when an actual errors occurs, and log
ENOTSUP with level 10.
Signed-off-by: Christof Schmitt <christof.schmitt at us.ibm.com>
---
source3/smbd/dosmode.c | 25 +++++++++++++++----------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c
index 04d27c7..a6ad107 100644
--- a/source3/smbd/dosmode.c
+++ b/source3/smbd/dosmode.c
@@ -732,16 +732,21 @@ int file_set_dosmode(connection_struct *conn, struct smb_filename *smb_fname,
old_mode = dos_mode(conn, smb_fname);
- if (dosmode & FILE_ATTRIBUTE_OFFLINE) {
- if (!(old_mode & FILE_ATTRIBUTE_OFFLINE)) {
- lret = SMB_VFS_SET_OFFLINE(conn, smb_fname);
- if (lret == -1) {
- DEBUG(0, ("set_dos_mode: client has asked to "
- "set FILE_ATTRIBUTE_OFFLINE to "
- "%s/%s but there was an error while "
- "setting it or it is not "
- "supported.\n", parent_dir,
- smb_fname_str_dbg(smb_fname)));
+ if ((dosmode & FILE_ATTRIBUTE_OFFLINE) &&
+ !(old_mode & FILE_ATTRIBUTE_OFFLINE)) {
+ lret = SMB_VFS_SET_OFFLINE(conn, smb_fname);
+ if (lret == -1) {
+ if (errno == ENOTSUP) {
+ DEBUG(10, ("Setting FILE_ATTRIBUTE_OFFLINE for "
+ "%s/%s is not supported.\n",
+ parent_dir,
+ smb_fname_str_dbg(smb_fname)));
+ } else {
+ DEBUG(0, ("An error occurred while setting "
+ "FILE_ATTRIBUTE_OFFLINE for "
+ "%s/%s: %s", parent_dir,
+ smb_fname_str_dbg(smb_fname),
+ strerror(errno)));
}
}
}
--
1.7.1
More information about the samba-technical
mailing list