summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Dahl <ada@thorsis.com>2024-07-03 12:12:58 +0200
committerHeiko Schocher <hs@denx.de>2024-08-10 11:54:28 +0200
commitca1f11d8c11dacd91c3bfd8e39d41db349e83f8b (patch)
tree07cf2e2250ae0997272610e6788caff52c909cd9
parent0989033d0968878bd8f5d42d4f507dc9a806cfe4 (diff)
fs: ubifs: Add volume mounted check
Safety guard in the U-Boot filesystem glue code, because these functions are called from different parts of the codebase. For generic filesystem handling this should have been checked in blk_get_device_part_str() already. Commands from cmd/ubifs.c should also check this before calling those functions, but you never know?! Signed-off-by: Alexander Dahl <ada@thorsis.com>
-rw-r--r--fs/ubifs/ubifs.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/fs/ubifs/ubifs.c b/fs/ubifs/ubifs.c
index 6ed9318f739..8b9bf125ab9 100644
--- a/fs/ubifs/ubifs.c
+++ b/fs/ubifs/ubifs.c
@@ -621,6 +621,11 @@ int ubifs_ls(const char *filename)
unsigned long inum;
int ret = 0;
+ if (!ubifs_is_mounted()) {
+ debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+ return -1;
+ }
+
inum = ubifs_findfile(ubifs_sb, (char *)filename);
if (!inum) {
ret = -1;
@@ -661,6 +666,11 @@ int ubifs_exists(const char *filename)
{
unsigned long inum;
+ if (!ubifs_is_mounted()) {
+ debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+ return -1;
+ }
+
inum = ubifs_findfile(ubifs_sb, (char *)filename);
return inum != 0;
@@ -672,6 +682,11 @@ int ubifs_size(const char *filename, loff_t *size)
struct inode *inode;
int err = 0;
+ if (!ubifs_is_mounted()) {
+ debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+ return -1;
+ }
+
inum = ubifs_findfile(ubifs_sb, (char *)filename);
if (!inum) {
err = -1;
@@ -875,6 +890,11 @@ int ubifs_read(const char *filename, void *buf, loff_t offset,
int count;
int last_block_size = 0;
+ if (!ubifs_is_mounted()) {
+ debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
+ return -1;
+ }
+
*actread = 0;
if (offset & (PAGE_SIZE - 1)) {