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>
This commit is contained in:
Alexander Dahl 2024-07-03 12:12:58 +02:00 committed by Heiko Schocher
parent 0989033d09
commit ca1f11d8c1

View file

@ -621,6 +621,11 @@ int ubifs_ls(const char *filename)
unsigned long inum; unsigned long inum;
int ret = 0; 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); inum = ubifs_findfile(ubifs_sb, (char *)filename);
if (!inum) { if (!inum) {
ret = -1; ret = -1;
@ -661,6 +666,11 @@ int ubifs_exists(const char *filename)
{ {
unsigned long inum; 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); inum = ubifs_findfile(ubifs_sb, (char *)filename);
return inum != 0; return inum != 0;
@ -672,6 +682,11 @@ int ubifs_size(const char *filename, loff_t *size)
struct inode *inode; struct inode *inode;
int err = 0; 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); inum = ubifs_findfile(ubifs_sb, (char *)filename);
if (!inum) { if (!inum) {
err = -1; err = -1;
@ -875,6 +890,11 @@ int ubifs_read(const char *filename, void *buf, loff_t offset,
int count; int count;
int last_block_size = 0; int last_block_size = 0;
if (!ubifs_is_mounted()) {
debug("UBIFS not mounted, use ubifsmount to mount volume first!\n");
return -1;
}
*actread = 0; *actread = 0;
if (offset & (PAGE_SIZE - 1)) { if (offset & (PAGE_SIZE - 1)) {