summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2005-08-17 19:11:46 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2005-08-17 19:11:46 +0000
commitb3b78ecffe627d735889295574258cccaf5c9eea (patch)
treeed7d177ce464593a57e8818af2c5dc1d2cb67a5d /cpukit
parent2005-08-16 Ralf Corsepius <ralf.corsepius@rtems.org> (diff)
downloadrtems-b3b78ecffe627d735889295574258cccaf5c9eea.tar.bz2
2005-08-17 Nickolay Semyonov <snob@oktetlabs.ru>
PR 744/filesystem * libcsupport/src/unlink.c, libfs/src/dosfs/msdos_eval.c: DOSFS did not support permissions on directories so the check performed by unlink would always fail. The unlink code was modified to support a not supported status being returned.
Diffstat (limited to 'cpukit')
-rw-r--r--cpukit/ChangeLog8
-rw-r--r--cpukit/libcsupport/src/unlink.c2
-rw-r--r--cpukit/libfs/src/dosfs/msdos_eval.c4
3 files changed, 11 insertions, 3 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
index f5e0e161fb..0ea1381aa1 100644
--- a/cpukit/ChangeLog
+++ b/cpukit/ChangeLog
@@ -1,3 +1,11 @@
+2005-08-17 Nickolay Semyonov <snob@oktetlabs.ru>
+
+ PR 744/filesystem
+ * libcsupport/src/unlink.c, libfs/src/dosfs/msdos_eval.c: DOSFS did not
+ support permissions on directories so the check performed by unlink
+ would always fail. The unlink code was modified to support a not
+ supported status being returned.
+
2005-08-15 Ralf Corsepius <ralf.corsepius@rtems.org>
* posix/include/mqueue.h, posix/src/mqueuetimedreceive.c:
diff --git a/cpukit/libcsupport/src/unlink.c b/cpukit/libcsupport/src/unlink.c
index 5b5f17c02a..b4fb6cbab1 100644
--- a/cpukit/libcsupport/src/unlink.c
+++ b/cpukit/libcsupport/src/unlink.c
@@ -36,7 +36,7 @@ int unlink(
return -1;
result = rtems_filesystem_evaluate_parent(RTEMS_LIBIO_PERMS_WRITE, &loc );
- if (result != 0){
+ if (result != 0 && errno != ENOTSUP) {
rtems_filesystem_freenode( &loc );
return -1;
}
diff --git a/cpukit/libfs/src/dosfs/msdos_eval.c b/cpukit/libfs/src/dosfs/msdos_eval.c
index 3fe7029138..dd614ace23 100644
--- a/cpukit/libfs/src/dosfs/msdos_eval.c
+++ b/cpukit/libfs/src/dosfs/msdos_eval.c
@@ -119,7 +119,7 @@ msdos_eval_path(
*/
if (fat_fd->fat_file_type != FAT_DIRECTORY)
{
- errno = ENOTDIR;
+ errno = ENOTSUP;
rc = -1;
goto error;
}
@@ -174,7 +174,7 @@ msdos_eval_path(
*/
if (fat_fd->fat_file_type != FAT_DIRECTORY)
{
- errno = ENOTDIR;
+ errno = ENOTSUP;
rc = -1;
goto error;
}