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