From d6443ba1d4a96045474f23daa191143232652eab Mon Sep 17 00:00:00 2001 From: ericm Date: Sat, 22 Nov 2003 07:09:16 +0000 Subject: [PATCH] liblustre: forgot to commit last night: workaround O_WRONLY (b2282) --- lustre/liblustre/namei.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lustre/liblustre/namei.c b/lustre/liblustre/namei.c index ad597d0..3ac2399 100644 --- a/lustre/liblustre/namei.c +++ b/lustre/liblustre/namei.c @@ -538,6 +538,18 @@ translate_lookup_intent(struct intent *intent, const char *path) it->it_flags = intent->int_arg2 ? *((int*)intent->int_arg2) : 0; + /* FIXME when use open(O_WRONLY) to create a file, MDS will + * delay the object creation on OST, thus no lsm will be returned. + * if call write() at the time, ll_extent_lock() will failed out + * because there will be no strip MD supplied. but O_RDWR will + * work fine. Here we forcely set the O_RDWR in this case, find + * a real fix later! FIXME + */ + if (it->it_flags & O_WRONLY) { + it->it_flags &= ~O_WRONLY; + it->it_flags |= O_RDWR; + } + if (intent->int_opmask & INT_OPEN) it->it_op |= IT_OPEN; /* -- 1.8.3.1