Implemented sandbox restarting on NTFS STATUS_LOG_FILE_FULL.
[captive.git] / src / libcaptive / client / file-slave.c
index a24cfa7..3bea5a2 100644 (file)
@@ -376,6 +376,13 @@ GnomeVFSResult errvfsresult;
                        NULL);  /* Key; NULL means no file locking key */
        g_return_val_if_fail(NT_SUCCESS(err)==NT_SUCCESS(file_IoStatusBlock.Status),GNOME_VFS_ERROR_GENERIC);
        g_return_val_if_fail(NT_SUCCESS(err),GNOME_VFS_ERROR_GENERIC);
+       if (!file_IoStatusBlock.Information) {
+               /* FIXME: Check ExRaiseStatus(STATUS_LOG_FILE_FULL);
+                * really occured. We expect so and we will remount the volume.
+                */
+               *bytes_written_return=0;
+               return GNOME_VFS_ERROR_LAUNCH;
+               }
        g_return_val_if_fail(file_IoStatusBlock.Information==num_bytes,GNOME_VFS_ERROR_GENERIC);
 
        captive_file_slave_object->offset+=file_IoStatusBlock.Information;