From: yangsheng Date: Wed, 13 Nov 2013 13:30:35 +0000 (+0800) Subject: LU-3373 llite: instantiate negative dentry X-Git-Tag: 2.5.53~72 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=0f2d93c95dec9931e597270e1251019d0e4099ed LU-3373 llite: instantiate negative dentry In the atomic_open callback. We should instantiate negative dentry. Else will got sanity:183 failed. Signed-off-by: yang sheng Change-Id: I83bc4a8995dfb813a381e910cc94cef6fe3721c3 Reviewed-on: http://review.whamcloud.com/8110 Tested-by: Jenkins Reviewed-by: Peng Tao Reviewed-by: Lai Siyao Reviewed-by: James Simmons Tested-by: Maloo Reviewed-by: Bob Glossman Reviewed-by: Oleg Drokin --- diff --git a/lustre/llite/namei.c b/lustre/llite/namei.c index 4c5dfe7..8876711 100644 --- a/lustre/llite/namei.c +++ b/lustre/llite/namei.c @@ -475,6 +475,12 @@ int ll_lookup_it_finish(struct ptlrpc_request *request, if (IS_ERR(alias)) RETURN(PTR_ERR(alias)); *de = alias; + } else if (!it_disposition(it, DISP_LOOKUP_NEG) && + !it_disposition(it, DISP_OPEN_CREATE)) { + /* With DISP_OPEN_CREATE dentry will + instantiated in ll_create_it. */ + LASSERT((*de)->d_inode == NULL); + d_instantiate(*de, inode); } if (!it_disposition(it, DISP_LOOKUP_NEG)) {