X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Ffilesys%2Ffilesys.c;h=5cf1d974013a008705a91a9b4bd74855416e1967;hb=a4613d70fb56b93216299f6253698ab0e4bbd46d;hp=0ca8e9eb8cef71372934df32c9c148e2065f1fcf;hpb=615bf3b3d2a8573ed6fb9ddc0055745e163ac999;p=pintos-anon diff --git a/src/filesys/filesys.c b/src/filesys/filesys.c index 0ca8e9e..5cf1d97 100644 --- a/src/filesys/filesys.c +++ b/src/filesys/filesys.c @@ -46,9 +46,9 @@ filesys_done (void) bool filesys_create (const char *name, off_t initial_size) { - struct dir *dir; disk_sector_t inode_sector = 0; - bool success = (dir_open_root (&dir) + struct dir *dir = dir_open_root (); + bool success = (dir != NULL && free_map_allocate (1, &inode_sector) && inode_create (inode_sector, initial_size) && dir_add (dir, name, inode_sector)); @@ -67,10 +67,10 @@ filesys_create (const char *name, off_t initial_size) struct file * filesys_open (const char *name) { - struct dir *dir; + struct dir *dir = dir_open_root (); struct inode *inode = NULL; - if (dir_open_root (&dir)) + if (dir != NULL) dir_lookup (dir, name, &inode); dir_close (dir); @@ -84,29 +84,12 @@ filesys_open (const char *name) bool filesys_remove (const char *name) { - struct dir *dir = NULL; - bool success = (dir_open_root (&dir) - && dir_remove (dir, name)); + struct dir *dir = dir_open_root (); + bool success = dir != NULL && dir_remove (dir, name); dir_close (dir); return success; } - -/* Prints a list of files in the filesystem to the system - console. - Returns true if successful, false on failure, - which occurs only if an internal memory allocation fails. */ -bool -filesys_list (void) -{ - struct dir *dir = NULL; - bool success = dir_open_root (&dir); - if (success) - dir_list (dir); - dir_close (dir); - - return success; -} static void must_succeed_function (int, bool) NO_INLINE; #define MUST_SUCCEED(EXPR) must_succeed_function (__LINE__, EXPR)