fix deleted directory record listing

This commit is contained in:
ІО-23 Шмуляр Олег 2025-05-16 15:57:09 +03:00
parent 941c51200c
commit 117e8706a8
1 changed files with 8 additions and 14 deletions

View File

@ -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,16 +2058,10 @@ 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) {
pr_err("no such file: '%s'\n", fname);
return 0;
}
file_inode_ptr = r[2];
free(r);
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;
}
struct fs_inode f;