From ff3d5c772d1f142e288ecef40f9af47ed33d8b0e Mon Sep 17 00:00:00 2001 From: bobijam Date: Tue, 16 Dec 2008 01:47:41 +0000 Subject: [PATCH] Branch b1_6 b=16417 i=alexey.lyashkov (shadow) i=johann Description: Lustre doesn't delete files Details : Clients drop lock reference and release openhandle when they find stale inode. --- lustre/ChangeLog | 17 +++++++++-------- lustre/llite/dcache.c | 10 +++++++++- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 26b4100..df99afa 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -44,11 +44,12 @@ tbd Sun Microsystems, Inc. of Lustre filesystem with 4K stack may cause a stack overflow. For more information, please refer to bugzilla 17630. -Severity : -Frequency : -Bugzilla : -Description: -Details : +Severity : normal +Frequency : race on file read and write +Bugzilla : 16417 +Description: Lustre doesn't delete files +Details : Clients drop lock reference and release openhandle when they find + stale inode. -------------------------------------------------------------------------- @@ -94,7 +95,7 @@ Details : * File join has been disabled in this release, refer to Bugzilla 16929. * A new Lustre ADIO driver is available for MPICH2-1.0.7. - * NFS export disabled when stack size < 8192. Since the NFSv4 export of + * NFS export disabled when stack size < 8192. Since the NFSv4 export of Lustre filesystem with 4K stack may cause a stack overflow. For more information, please refer to bugzilla 17630. @@ -110,7 +111,7 @@ Details : client_disconnect_export vs connect request race. Severity : minor Frequency : always Bugzilla : 16693 -Description: shrink LOV EAs before replying +Description: shrink LOV EAs before replying Details : correctly adjust LOV EA buffer for reply. Severity : normal @@ -130,7 +131,7 @@ Severity : normal Frequency : rare, need ACLs on inode. Bugzilla : 16492 Description: client can't handle ost additional correctly -Details : if ost was added after client connected to mds client can have +Details : if ost was added after client connected to mds client can have hit lnet_try_match_md ... to big messages to wide striped files. in this case need teach client to handle config events about add lov target and update client max ea size at that event. diff --git a/lustre/llite/dcache.c b/lustre/llite/dcache.c index c0989f2..6e67b57 100644 --- a/lustre/llite/dcache.c +++ b/lustre/llite/dcache.c @@ -469,7 +469,15 @@ do_lock: } if (rc < 0) { - if (rc != -ESTALE) { + if (-ESTALE == rc) { + if (it_disposition(it, DISP_OPEN_OPEN) && + !it_open_error(DISP_OPEN_OPEN, it)) + /* server have valid open - close file first*/ + ll_release_openhandle(de, it); + /* release intent reference to avoid having stale 'it' + * in namedata for old VFS intent */ + ll_intent_drop_lock(it); + } else { CDEBUG(D_INFO, "ll_intent_lock: rc %d : it->it_status " "%d\n", rc, it->d.lustre.it_status); } -- 1.8.3.1