[Ocfs2-devel] [PATCH] ocfs2: llseek need to inode cluster lock and unlock for update the inode size in SEEK_END.

Mark Fasheh mfasheh at suse.de
Mon Jun 17 10:02:51 PDT 2013


On Mon, Jun 17, 2013 at 11:17:49PM +0800, Jeff Liu wrote:
> Please add spaces between comments and annotation, i.e,
> 	   /*  Need to ...... */

yes, please describe while we're taking the lock here (describing the race
you're talking about would be fine).


> > +        ret = ocfs2_inode_lock(inode, NULL, 0);
> > +        if (ret < 0) {
> > +            mlog_errno(ret);
> > +            goto out;
> > +        }
> > +        ocfs2_inode_unlock(inode, 0);
> >           offset += inode->i_size;
> 
> Why not protect the offset adjustment insides ocfs2 inode locks?

If we're going through the trouble of locking we *need* to put the offset
calculation inside the lock otherwise we can still get stale i_size and
basically haven't fixed anything.


Btw, do you feel that this could impact performance for other workloads that
ocfs2 usually does?
	--Mark

--
Mark Fasheh



More information about the Ocfs2-devel mailing list