If fat_create_dir_entry() fails, e.g. if the root directory is full,
file_fat_write_at() must not try to write the file.

Fixes: 10abea4f851a ("fs: fat: carve out fat_create_dir_entry()")
Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de>
---
 fs/fat/fat_write.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
index a25b2283d4..ee28ca5f14 100644
--- a/fs/fat/fat_write.c
+++ b/fs/fat/fat_write.c
@@ -1428,6 +1428,11 @@ int file_fat_write_at(const char *filename, loff_t pos, 
void *buffer,
                }

                ret = fat_create_dir_entry(itr, basename, size, ATTR_ARCH);
+               if (ret < 0) {
+                       log_err("Can't create directory entry\n");
+                       ret = -EIO;
+                       goto exit;
+               }

                retdent = itr->dent;
        }
--
2.30.2

Reply via email to