From 1ddfe15dcce883bfbb677380ba692e20efc4a852 Mon Sep 17 00:00:00 2001 From: shadow Date: Tue, 19 Feb 2008 07:17:23 +0000 Subject: [PATCH] Do not fail import if osc_interpret_create gets -EAGAIN. b=13730 i=green i=johann --- lustre/ChangeLog | 9 +++++++++ lustre/osc/osc_create.c | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/lustre/ChangeLog b/lustre/ChangeLog index a5648d6..b98e81e 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -12,6 +12,15 @@ tbd Sun Microsystems, Inc. * RHEL 4 and RHEL 5/SLES 10 clients behaves differently on 'cd' to a removed cwd "./" (refer to Bugzilla 14399). +Severity : normal +Frequency : occasional +Bugzilla : 13730 +Description: Do not fail import if osc_interpret_create gets -EAGAIN +Details : If osc_interpret_create got -EAGAIN it immediately exits and + wakeup oscc_waitq. After wakeup oscc_wait_for_objects call + oscc_has_objects and see OSC has no objests and call + oscc_internal_create to resend create request. + Severity : enhancement Bugzilla : 14858 Description: Update to SLES10 SP1 latest kernel-2.6.16.54-0.2.5. diff --git a/lustre/osc/osc_create.c b/lustre/osc/osc_create.c index a781b22..aff69bd 100644 --- a/lustre/osc/osc_create.c +++ b/lustre/osc/osc_create.c @@ -81,6 +81,11 @@ static int osc_interpret_create(struct ptlrpc_request *req, void *data, int rc) spin_unlock(&oscc->oscc_lock); break; } + case -EAGAIN: + /* valid race delorphan vs create, or somthing after resend */ + spin_unlock(&oscc->oscc_lock); + DEBUG_REQ(D_INODE, req, "Got EGAIN - resend \n"); + break; case -ENOSPC: case -EROFS: { oscc->oscc_flags |= OSCC_FLAG_NOSPC; -- 1.8.3.1