On Tue, Sep 22, 2015 at 05:29:39PM +0100, Luis de Bethencourt wrote: > reada is using -1 instead of the -ENOMEM defined macro to specify that > a buffer allocation failed. Since the error number is propagated, the > caller will get a -EPERM which is the wrong error condition. > > Smatch tool warning: > reada_add_block() warn: returning -1 instead of -ENOMEM is sloppy > > Signed-off-by: Luis de Bethencourt <[email protected]> > --- > fs/btrfs/reada.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/btrfs/reada.c b/fs/btrfs/reada.c > index 4645cd1..5bfd3cd 100644 > --- a/fs/btrfs/reada.c > +++ b/fs/btrfs/reada.c > @@ -569,7 +569,7 @@ static int reada_add_block(struct reada_control *rc, u64 > logical, > rec = kzalloc(sizeof(*rec), GFP_NOFS); > if (!rec) { > reada_extent_put(root->fs_info, re); > - return -1; > + return -ENOMEM;
When called from btrfs_reada_add, the return value is ignored and overriden as ENOMEM. Please also update the caller to return the exact value from reada_add_block. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

