> On Nov 9, 2015, at 05:13, Nicholas Krause <xerofoify@xxxxxxxxx> wrote: > > This fixes error handling in the function ceph_readddir_prepopulate > to properly check if the call to the function ceph_fill_dirfrag has > failed by returning a error code. Further more if this does arise > jump to the goto label, out of the function ceph_readdir_prepopulate > in order to clean up previously allocated resources by this function > before returning to the caller this errror code in order for all callers > to be now aware and able to handle this failure in their own intended > error paths. > > Signed-off-by: Nicholas Krause <xerofoify@xxxxxxxxx> > --- > fs/ceph/inode.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c > index 96d2bd8..7738be6 100644 > --- a/fs/ceph/inode.c > +++ b/fs/ceph/inode.c > @@ -1417,8 +1417,11 @@ int ceph_readdir_prepopulate(struct ceph_mds_request *req, > } else { > dout("readdir_prepopulate %d items under dn %p\n", > rinfo->dir_nr, parent); > - if (rinfo->dir_dir) > - ceph_fill_dirfrag(d_inode(parent), rinfo->dir_dir); > + if (rinfo->dir_dir) { > + err = ceph_fill_dirfrag(d_inode(parent), rinfo->dir_dir); > + if (err) > + goto out; > + } > } > ceph_fill_dirfrag() failure is not fatal. I think it’s better to not skip later code when it happens. Regards Yan, Zheng > if (ceph_frag_is_leftmost(frag) && req->r_readdir_offset == 2) { > -- > 2.5.0 > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html