Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752363Ab2JOH2c (ORCPT ); Mon, 15 Oct 2012 03:28:32 -0400 Received: from mail-we0-f174.google.com ([74.125.82.174]:39114 "EHLO mail-we0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751497Ab2JOH2b (ORCPT ); Mon, 15 Oct 2012 03:28:31 -0400 MIME-Version: 1.0 In-Reply-To: <87r4p271uw.fsf@devron.myhome.or.jp> References: <1349598764-3252-1-git-send-email-linkinjeon@gmail.com> <877gqu90x1.fsf@devron.myhome.or.jp> <87391i8mny.fsf@devron.myhome.or.jp> <87r4p271uw.fsf@devron.myhome.or.jp> Date: Mon, 15 Oct 2012 16:28:30 +0900 Message-ID: Subject: Re: [PATCH v4 3/4] fat (exportfs): rebuild directory-inode if fat_dget() fails From: Namjae Jeon To: OGAWA Hirofumi Cc: akpm@linux-foundation.org, bfields@fieldses.org, viro@zeniv.linux.org.uk, linux-kernel@vger.kernel.org, Namjae Jeon , Ravishankar N , Amit Sahrawat Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1577 Lines: 40 2012/10/14, OGAWA Hirofumi : > Namjae Jeon writes: > >>>>>> + if (!fat_get_dotdot_entry(child_dir->d_inode, &dotdot_bh, &de)) >>>>>> { >>>>>> + parent_logstart = fat_get_start(sbi, de); >>>>>> parent_inode = fat_dget(sb, parent_logstart); >>>>>> + if (parent_inode || sbi->options.nfs != >>>>>> FAT_NFS_NOSTALE_RO) >>>>>> + goto out; >>>>>> + if (!parent_logstart) >>>>>> + /*logstart of dotdot entry is zero if >>>>>> + * if the directory's parent is root >>>>>> + */ >>>>>> + parent_inode = sb->s_root->d_inode; >>>>> >>>>> get_parent() should not be called for root dir, right? >>>> Yes. >>> >>> Ah, actual question was - subdir of root can be passed to this? I guess >>> it is possible... >> Yes, you're right. > > OK, I think I got where is wrong. If it is the subdir of rootdir, > fat_dget() should get the inode of root? That is correct. Whenever fat_dget() is called for sub-directories which is in root folder, we assign root inode as parent inode. > > So, I guess if parent_logstart == 0, it is BUG(). Would you explain more why you think it is BUG() ? Thanks. > -- > OGAWA Hirofumi > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/