Re: [PATCH v4 3/4] fat (exportfs): rebuild directory-inode iffat_dget() fails

From: Namjae Jeon
Date: Mon Oct 15 2012 - 03:28:35 EST


2012/10/14, OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>:
> Namjae Jeon <linkinjeon@xxxxxxxxx> 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 <hirofumi@xxxxxxxxxxxxxxxxxx>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/