Skip to content

Commit a25743a

Browse files
committedFeb 4, 2018
Fixed some minor error code differences
- Write on read-only file to return LFS_ERR_BADF - Renaming directory onto file to return LFS_ERR_NOTEMPTY - Changed LFS_ERR_INVAL in lfs_file_seek to assert
1 parent 6716b55 commit a25743a

File tree

3 files changed

+8
-11
lines changed

3 files changed

+8
-11
lines changed
 

‎lfs.c

+6-10
Original file line numberDiff line numberDiff line change
@@ -1463,11 +1463,7 @@ int lfs_file_sync(lfs_t *lfs, lfs_file_t *file) {
14631463
return err;
14641464
}
14651465

1466-
if (entry.d.type != LFS_TYPE_REG) {
1467-
// sanity check valid entry
1468-
return LFS_ERR_INVAL;
1469-
}
1470-
1466+
assert(entry.d.type == LFS_TYPE_REG);
14711467
entry.d.u.file.head = file->head;
14721468
entry.d.u.file.size = file->size;
14731469

@@ -1488,7 +1484,7 @@ lfs_ssize_t lfs_file_read(lfs_t *lfs, lfs_file_t *file,
14881484
lfs_size_t nsize = size;
14891485

14901486
if ((file->flags & 3) == LFS_O_WRONLY) {
1491-
return LFS_ERR_INVAL;
1487+
return LFS_ERR_BADF;
14921488
}
14931489

14941490
if (file->flags & LFS_F_WRITING) {
@@ -1544,7 +1540,7 @@ lfs_ssize_t lfs_file_write(lfs_t *lfs, lfs_file_t *file,
15441540
lfs_size_t nsize = size;
15451541

15461542
if ((file->flags & 3) == LFS_O_RDONLY) {
1547-
return LFS_ERR_INVAL;
1543+
return LFS_ERR_BADF;
15481544
}
15491545

15501546
if (file->flags & LFS_F_READING) {
@@ -1667,7 +1663,7 @@ lfs_soff_t lfs_file_seek(lfs_t *lfs, lfs_file_t *file,
16671663

16681664
int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size) {
16691665
if ((file->flags & 3) == LFS_O_RDONLY) {
1670-
return LFS_ERR_INVAL;
1666+
return LFS_ERR_BADF;
16711667
}
16721668

16731669
lfs_off_t oldsize = lfs_file_size(lfs, file);
@@ -1879,7 +1875,7 @@ int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath) {
18791875

18801876
// must have same type
18811877
if (prevexists && preventry.d.type != oldentry.d.type) {
1882-
return LFS_ERR_INVAL;
1878+
return LFS_ERR_ISDIR;
18831879
}
18841880

18851881
lfs_dir_t dir;
@@ -1891,7 +1887,7 @@ int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath) {
18911887
if (err) {
18921888
return err;
18931889
} else if (dir.d.size != sizeof(dir.d)+4) {
1894-
return LFS_ERR_INVAL;
1890+
return LFS_ERR_NOTEMPTY;
18951891
}
18961892
}
18971893

‎lfs.h

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ enum lfs_error {
6666
LFS_ERR_NOTDIR = -20, // Entry is not a dir
6767
LFS_ERR_ISDIR = -21, // Entry is a dir
6868
LFS_ERR_NOTEMPTY = -39, // Dir is not empty
69+
LFS_ERR_BADF = -9, // Bad file number
6970
LFS_ERR_INVAL = -22, // Invalid parameter
7071
LFS_ERR_NOSPC = -28, // No space left on device
7172
LFS_ERR_NOMEM = -12, // No more memory available

‎tests/test_dirs.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ tests/test.py << TEST
220220
lfs_mount(&lfs, &cfg) => 0;
221221
lfs_mkdir(&lfs, "warmpotato") => 0;
222222
lfs_mkdir(&lfs, "warmpotato/mushy") => 0;
223-
lfs_rename(&lfs, "hotpotato", "warmpotato") => LFS_ERR_INVAL;
223+
lfs_rename(&lfs, "hotpotato", "warmpotato") => LFS_ERR_NOTEMPTY;
224224
225225
lfs_remove(&lfs, "warmpotato/mushy") => 0;
226226
lfs_rename(&lfs, "hotpotato", "warmpotato") => 0;

0 commit comments

Comments
 (0)