add an extra check for loc->parent when loc->ino is not 1

This extra check is needed only in case where setup is
"server -> chain -> client", where for the root inode, inode->ino
is not updated in the first lookup call, hence used to crash.

Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>

BUG: 377 (segfault in protocol/client with chaining)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=377
This commit is contained in:
Amar Tumballi 2009-11-25 15:13:37 +00:00 committed by Anand V. Avati
parent 28e2901806
commit 3429e87557

View File

@ -3268,7 +3268,7 @@ client_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc,
GF_VALIDATE_OR_GOTO (this->name, loc, unwind);
GF_VALIDATE_OR_GOTO (this->name, loc->path, unwind);
if (loc->ino != 1) {
if (loc->ino != 1 && loc->parent) {
ret = inode_ctx_get2 (loc->parent, this, &par, &gen);
if (loc->parent->ino && ret < 0) {
gf_log (this->name, GF_LOG_TRACE,