smbd: Change logging when SET_OFFLINE is not supported
[obnox/samba/samba-obnox.git] / source3 / smbd / dosmode.c
index 04d27c7a2eb4e6c268bf5758b6cbe1ae52966967..a6ad107a01e68c40b100fc8365770df495a47bf5 100644 (file)
@@ -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)));
                        }
                }
        }