Namjae Jeon <[email protected]> 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?

> +                     blknr = fat_clus_to_blknr(sbi, parent_logstart);
> +                     parent_bh = sb_bread(sb, blknr);
> +                     if (!parent_bh) {
> +                             fat_msg(sb, KERN_ERR,
> +                                     "NFS:unable to read cluster of parent 
> directory");
> +                             goto out;
> +                     }
> +                     de = (struct msdos_dir_entry *) parent_bh->b_data;
> +                     clus_to_match = fat_get_start(sbi, &de[0]);
> +                     search_clus = fat_get_start(sbi, &de[1]);
> +                     if (!search_clus)
> +                             search_clus = sbi->root_cluster;
> +                     brelse(parent_bh);
> +                     do {
> +                             parent_inode =  fat_traverse_cluster(sb,
> +                                             search_clus, clus_to_match);
> +                             if (IS_ERR(parent_inode) || parent_inode)
> +                                     break;
> +                             search_clus = fat_read_next_clus(sb,
> +                                                             search_clus);
> +                             if (search_clus < 0)
> +                                     break;
> +                     } while (search_clus != FAT_ENT_EOF);
> +             }

Please make this part as own function at least. And this is doing same
thing with readdir, so we will have to clean this up as I said before.
-- 
OGAWA Hirofumi <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to