X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdt%2Fmdt_hsm_cdt_requests.c;h=36adeb19cf563ba66292db0168d98687817f0e8a;hb=f625f670afbe954030ff81f0f8522137d6cdd335;hp=796cbea2a302ac05e30ec56ae9467352db491050;hpb=45ccb61a6123e68c55bcab044188cda6d935bcc3;p=fs%2Flustre-release.git diff --git a/lustre/mdt/mdt_hsm_cdt_requests.c b/lustre/mdt/mdt_hsm_cdt_requests.c index 796cbea..36adeb1 100644 --- a/lustre/mdt/mdt_hsm_cdt_requests.c +++ b/lustre/mdt/mdt_hsm_cdt_requests.c @@ -23,6 +23,7 @@ * (C) Copyright 2012 Commissariat a l'energie atomique et aux energies * alternatives * + * Copyright (c) 2014, Intel Corporation. */ /* * lustre/mdt/mdt_hsm_cdt_requests.c @@ -156,8 +157,13 @@ static int hsm_update_work(struct cdt_req_progress *crp, int rc, osz, nsz; struct interval_node **new_vv; struct interval_node *v, *node; + __u64 end; ENTRY; + end = extent->offset + extent->length; + if (end <= extent->offset) + RETURN(-EINVAL); + mutex_lock(&crp->crp_lock); /* new node index */ @@ -196,7 +202,7 @@ static int hsm_update_work(struct cdt_req_progress *crp, v = crp->crp_node[crp->crp_cnt / NODE_VECTOR_SZ]; node = &v[crp->crp_cnt % NODE_VECTOR_SZ]; - interval_set(node, extent->offset, extent->offset + extent->length); + interval_set(node, extent->offset, end); /* try to insert, if entry already exist ignore the new one * it can happen if ct sends 2 times the same progress */ if (interval_insert(node, &crp->crp_root) == NULL) @@ -205,7 +211,7 @@ static int hsm_update_work(struct cdt_req_progress *crp, rc = 0; out: mutex_unlock(&crp->crp_lock); - return rc; + RETURN(rc); } /** @@ -219,7 +225,7 @@ static void mdt_cdt_init_request_tree(struct cdt_req_progress *crp) crp->crp_max = 0; } -/** Allocate/init a agent request and its sub-structures. +/** Allocate/init an agent request and its sub-structures. * * \param compound_id [IN] * \param archive_id [IN] @@ -260,7 +266,7 @@ struct cdt_agent_req *mdt_cdt_alloc_request(__u64 compound_id, __u32 archive_id, } /** - * Free a agent request and its sub-structures. + * Free an agent request and its sub-structures. * * \param car [IN] Request to be freed. */ @@ -521,7 +527,7 @@ static int mdt_hsm_active_requests_proc_show(struct seq_file *s, void *v) " compound/cookie="LPX64"/"LPX64 " action=%s archive#=%d flags="LPX64 " extent="LPX64"-"LPX64" gid="LPX64 - " data=[%s] canceled=%d uuid=%s done="LPU64"%%\n", + " data=[%s] canceled=%d uuid=%s done="LPU64"\n", PFID(&car->car_hai->hai_fid), PFID(&car->car_hai->hai_dfid), car->car_compound_id, car->car_hai->hai_cookie, @@ -569,15 +575,12 @@ static int lprocfs_open_hsm_active_requests(struct inode *inode, int rc; ENTRY; - if (LPROCFS_ENTRY_CHECK(PDE(inode))) - RETURN(-ENOENT); - rc = seq_open(file, &mdt_hsm_active_requests_proc_ops); if (rc) { RETURN(rc); } s = file->private_data; - s->private = PDE(inode)->data; + s->private = PDE_DATA(inode); RETURN(rc); }