fix deleted directory record listing
This commit is contained in:
parent
941c51200c
commit
117e8706a8
18
src/fs.c
18
src/fs.c
|
@ -1938,7 +1938,7 @@ int fs_ls(void *d)
|
|||
read_block(dir.blocks[i], (void *) &recs);
|
||||
|
||||
for (int k = 0; k < DIRECTORY_RECORDS_PER_BLOCK; k++) {
|
||||
if (!recs[k].fname)
|
||||
if (!recs[k].fname[0])
|
||||
continue;
|
||||
|
||||
pr_stdout("%s -> inode_ptr=%d\n", recs[k].fname, recs[k].inode_no);
|
||||
|
@ -1961,7 +1961,7 @@ int fs_ls(void *d)
|
|||
read_block(ext.blocks[i], (void *) &recs);
|
||||
|
||||
for (int k = 0; k < DIRECTORY_RECORDS_PER_BLOCK; k++) {
|
||||
if (!recs[k].fname)
|
||||
if (!recs[k].fname[0])
|
||||
continue;
|
||||
|
||||
pr_stdout("%s -> inode_ptr=%d\n", recs[k].fname, recs[k].inode_no);
|
||||
|
@ -1996,7 +1996,7 @@ int fs_la(void *d)
|
|||
read_block(dir.blocks[i], (void *) &recs);
|
||||
|
||||
for (int k = 0; k < DIRECTORY_RECORDS_PER_BLOCK; k++) {
|
||||
if (!recs[k].fname)
|
||||
if (!recs[k].fname[0])
|
||||
continue;
|
||||
|
||||
struct fs_inode f_inode;
|
||||
|
@ -2031,7 +2031,7 @@ int fs_la(void *d)
|
|||
read_block(ext.blocks[i], (void *) &recs);
|
||||
|
||||
for (int k = 0; k < DIRECTORY_RECORDS_PER_BLOCK; k++) {
|
||||
if (!recs[k].fname)
|
||||
if (!recs[k].fname[0])
|
||||
continue;
|
||||
|
||||
struct fs_inode f_inode;
|
||||
|
@ -2058,18 +2058,12 @@ int fs_stat(void *d)
|
|||
{
|
||||
char *fname = *((char **) d);
|
||||
|
||||
int file_inode_ptr;
|
||||
{
|
||||
int *r = find_filename_in_directory(fs_cwd_inode_ptr, fname);
|
||||
if (r == NULL) {
|
||||
int file_inode_ptr = find_fname_in_directory(fs_cwd_inode_ptr, fname);
|
||||
if (file_inode_ptr < 0) {
|
||||
pr_err("no such file: '%s'\n", fname);
|
||||
return 0;
|
||||
}
|
||||
|
||||
file_inode_ptr = r[2];
|
||||
free(r);
|
||||
}
|
||||
|
||||
struct fs_inode f;
|
||||
read_block(read_inode_ptr(file_inode_ptr), (void *) &f);
|
||||
|
||||
|
|
Loading…
Reference in New Issue