staging: erofs: return the error value if fill_inline_data() fails

We should consider the error returned by fill_inline_data() when filling
last page in fill_inode(). If not getting inode will be successful even
though last page is bad. That is illogical. Also change -EAGAIN to 0 in
fill_inline_data() to stand for successful filling.

Signed-off-by: Yue Hu <huyue2@yulong.com>
Reviewed-by: Gao Xiang <gaoxiang25@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Yue Hu 2019-06-27 17:46:15 +08:00 committed by Greg Kroah-Hartman
parent fbd6b25009
commit 5545745930

View File

@ -155,7 +155,7 @@ static int fill_inline_data(struct inode *inode, void *data,
inode->i_link = lnk;
set_inode_fast_symlink(inode);
}
return -EAGAIN;
return 0;
}
static int fill_inode(struct inode *inode, int isdir)
@ -217,7 +217,7 @@ static int fill_inode(struct inode *inode, int isdir)
inode->i_mapping->a_ops = &erofs_raw_access_aops;
/* fill last page if inline data is available */
fill_inline_data(inode, data, ofs);
err = fill_inline_data(inode, data, ofs);
}
out_unlock: