[PATCH] FUSE - better error reporting in fuse_fill_super

From: Miklos Szeredi
Date: Wed Jan 26 2005 - 18:22:40 EST


Andrew,

This patch makes fuse_fill_super() return correct error value in case
of OOM.

Please apply.

Thanks,
Miklos

Signed-off-by: Miklos Szeredi <miklos@xxxxxxxxxx>

diff -rup linux-2.6.11-rc2-mm1/fs/fuse/inode.c linux-fuse/fs/fuse/inode.c
--- linux-2.6.11-rc2-mm1/fs/fuse/inode.c 2005-01-26 18:30:47.000000000 +0100
+++ linux-fuse/fs/fuse/inode.c 2005-01-26 18:18:58.000000000 +0100
@@ -407,14 +407,14 @@ static struct fuse_conn *get_conn(struct
struct fuse_conn *fc;

if (file->f_op != &fuse_dev_operations)
- return NULL;
+ return ERR_PTR(-EINVAL);
fc = new_conn();
if (fc == NULL)
- return NULL;
+ return ERR_PTR(-ENOMEM);
spin_lock(&fuse_lock);
if (file->private_data) {
free_conn(fc);
- fc = NULL;
+ fc = ERR_PTR(-EINVAL);
} else {
file->private_data = fc;
fc->sb = sb;
@@ -525,8 +525,8 @@ static int fuse_fill_super(struct super_

fc = get_conn(file, sb);
fput(file);
- if (fc == NULL)
- return -EINVAL;
+ if (IS_ERR(fc))
+ return PTR_ERR(fc);

fc->flags = d.flags;
fc->user_id = d.user_id;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/