Update process_execute to acquire lock when checking if file exists

This commit is contained in:
Themis Demetriades
2024-11-12 16:12:24 +00:00
parent 3418425f20
commit b0400693ae

View File

@@ -85,12 +85,11 @@ process_execute (const char *cmd)
/* NOTE: Currently, the file being executed is closed in load () and then
reopened here. Because load is an exported public function, this
might be necessary. */
struct file *exec_file = filesys_open (file_name);
file_deny_write (exec_file);
/* Validates that the current file to be executed is a valid file */
if (filesys_open (file_name) == NULL)
return TID_ERROR;
lock_acquire (&filesys_lock);
/* Validates that the current file to be executed is a valid file */
if (filesys_open (file_name) == NULL)
return TID_ERROR;
lock_release (&filesys_lock);
/* Create a new thread to execute the command, by initializing
it running the function 'start_process' with the appropriate