From 0f2d93c95dec9931e597270e1251019d0e4099ed Mon Sep 17 00:00:00 2001 From: yangsheng Date: Wed, 13 Nov 2013 21:30:35 +0800 Subject: [PATCH] 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 --- lustre/llite/namei.c | 6 ++++++ 1 file changed, 6 insertions(+) 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)) { -- 1.8.3.1