summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/smbd/dosmode.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c
index 04d27c7a2e..a6ad107a01 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)));
}
}
}