summaryrefslogtreecommitdiffstats
path: root/fs/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fs.c')
-rw-r--r--fs/fs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/fs.c b/fs/fs.c
index 8d39232818..6be2eba396 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -406,8 +406,11 @@ int open(const char *pathname, int flags, ...)
}
if (!exist) {
- errno = fsdrv->create(dev, path,
- S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO);
+ if (NULL != fsdrv->create)
+ errno = fsdrv->create(dev, path,
+ S_IFREG | S_IRWXU | S_IRWXG | S_IRWXO);
+ else
+ errno = -EROFS;
if (errno)
goto out;
}