diff --git a/drivers/staging/lustre/lustre/llite/dcache.c b/drivers/staging/lustre/lustre/llite/dcache.c index 966f580e26fb80be368540fc61cd5ba8eec1cf63..38f84662cf02d0ff9ec93ff9bed8b5bd46ee54f9 100644 --- a/drivers/staging/lustre/lustre/llite/dcache.c +++ b/drivers/staging/lustre/lustre/llite/dcache.c @@ -126,6 +126,7 @@ static int ll_ddelete(const struct dentry *de) static int ll_d_init(struct dentry *de) { struct ll_dentry_data *lld = kzalloc(sizeof(*lld), GFP_KERNEL); + if (unlikely(!lld)) return -ENOMEM; lld->lld_invalid = 1; diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c index fc176540bb953cf78ccea68192e20aab2e1e5132..d583696e83788404e06cc795b438047815d80267 100644 --- a/drivers/staging/lustre/lustre/llite/namei.c +++ b/drivers/staging/lustre/lustre/llite/namei.c @@ -434,6 +434,7 @@ struct dentry *ll_splice_alias(struct inode *inode, struct dentry *de) { if (inode) { struct dentry *new = ll_find_alias(inode, de); + if (new) { d_move(new, de); iput(inode); diff --git a/drivers/staging/lustre/lustre/llite/symlink.c b/drivers/staging/lustre/lustre/llite/symlink.c index cd77b55d3895462e144071651f91ddce2185ef8e..60aac42e53440ecb6f3cc21deb42189f1d004a73 100644 --- a/drivers/staging/lustre/lustre/llite/symlink.c +++ b/drivers/staging/lustre/lustre/llite/symlink.c @@ -129,6 +129,7 @@ static const char *ll_get_link(struct dentry *dentry, struct ptlrpc_request *request = NULL; int rc; char *symname = NULL; + if (!dentry) return ERR_PTR(-ECHILD); diff --git a/drivers/staging/lustre/lustre/llite/vvp_io.c b/drivers/staging/lustre/lustre/llite/vvp_io.c index eb5d31ad7d5dcb55004203d927a241f4aa645a0e..aa31bc0a58a617a67f9bd718173bea9a5f8bc74b 100644 --- a/drivers/staging/lustre/lustre/llite/vvp_io.c +++ b/drivers/staging/lustre/lustre/llite/vvp_io.c @@ -450,6 +450,7 @@ static void vvp_io_advance(const struct lu_env *env, { struct cl_object *obj = ios->cis_io->ci_obj; struct vvp_io *vio = cl2vvp_io(env, ios); + CLOBINVRNT(env, obj, vvp_object_invariant(obj)); vio->vui_tot_count -= nob; diff --git a/drivers/staging/lustre/lustre/obdclass/cl_page.c b/drivers/staging/lustre/lustre/obdclass/cl_page.c index cd9a40ca4448960a6130a7bc8e745ab3276f4a56..71fcc4cc9e72682951243de94268a249deb2cbba 100644 --- a/drivers/staging/lustre/lustre/obdclass/cl_page.c +++ b/drivers/staging/lustre/lustre/obdclass/cl_page.c @@ -482,6 +482,7 @@ void cl_page_disown0(const struct lu_env *env, int cl_page_is_owned(const struct cl_page *pg, const struct cl_io *io) { struct cl_io *top = cl_io_top((struct cl_io *)io); + LINVRNT(cl_object_same(pg->cp_obj, io->ci_obj)); return pg->cp_state == CPS_OWNED && pg->cp_owner == top; } diff --git a/drivers/staging/lustre/lustre/osc/osc_cache.c b/drivers/staging/lustre/lustre/osc/osc_cache.c index f8c5fc0ecd4572216b951c3bddbdfd827982ac76..c5ccf568313ae9383f0fd957b7e1fa7125f76dfc 100644 --- a/drivers/staging/lustre/lustre/osc/osc_cache.c +++ b/drivers/staging/lustre/lustre/osc/osc_cache.c @@ -898,6 +898,7 @@ int osc_extent_finish(const struct lu_env *env, struct osc_extent *ext, int offset = last_off & ~PAGE_MASK; int count = last_count + (offset & (blocksize - 1)); int end = (offset + last_count) & (blocksize - 1); + if (end) count += blocksize - end;