[Ocfs2-devel] [PATCH] ocfs2: alloc orphaned inode in ocfs2_symlink

Li Dongyang lidongyang at novell.com
Thu Apr 8 19:37:46 PDT 2010


On Friday 09 April 2010 07:10:22 Mark Fasheh wrote:
> Hi Li,
> 
> On Thu, Apr 08, 2010 at 09:13:08AM +0800, Li Dongyang wrote:
> > alloc the inode orphaned in ocfs2_symlink so we can delete the inode
> > in the iput if we meet errors with the inode, e.g. ocfs2_add_inode_data.
> > or ocfs2_query_inode_wipe will complain the inode is not orphaned on
> > disk.
> 
> Thanks for the patch. Your solution is too heavy for such a special case -
> we can't lock the orphan dir and orphan / de-orphan an inode every time a
> symlink is made.
> 
Hi, Mark,
Thanks for reviewing, Jan Kara and I also think this is expensive.
> The good news is that I believe there's an easier way to handle this. You
> can add a flag to ocfs2_inode_info->ip_flags (see fs/ocfs2/inode.h). I
>  would call this flag something like OCFS2_INODE_SKIP_ORPHAN_DIR. If the
>  allocation fails, we could mark the inode with that flag. From a quick
>  look at the code, the only places that need additional checking for the
>  flag would be: ocfs2_query_inode_wipe() and ocfs2_wipe_inode().
> 
Looking into that.
> 
> Ultimately, I think the best solution is for us to delete the inode
> "in-place". We actually already have all the locks and journal credits we
> need at that point. It's a bit tricky though because we have to be careful
> what state the inode gets set in, which is why for a short-term fix, the
> above solution is ok.
Glad to know this way, maybe I'll post an updated patch.
> 	--Mark
> 
> --
> Mark Fasheh
> 



More information about the Ocfs2-devel mailing list