All of lore.kernel.org
 help / color / mirror / Atom feed
From: shencanquan <shencanquan@huawei.com>
To: ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH] ocfs2: llseek need to inode cluster lock and unlock for update the inode size in SEEK_END.
Date: Tue, 18 Jun 2013 08:57:39 +0800	[thread overview]
Message-ID: <51BFB083.20202@huawei.com> (raw)
In-Reply-To: <51BF289D.9030706@oracle.com>

On 2013/6/17 23:17, Jeff Liu wrote:

> On 06/17/2013 10:48 PM, shencanquan wrote:
> 
>> We found that llseek has a bug when in SEEK_END.  it need to add the 
>> inode lock and unlock.
>> This bug can be reproduce the following scenario:
>> On one nodeA, open the file and then write some data to file and close 
>> the file .
>> On another nodeB , open the file and llseek the end of file . the 
>> position of file is old.
> 
> Can you please wrap these around 72 columns or so in the future?
> Also, that would be appreciated if you can supply more detailed
> info to reflect the results before/after applying this patch.
> 

 Thanks for your comments.

>>
>> Signed-off-by: jensen <shencanquan@huawei.com>
>> ---
>>   file.c |    7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/file.c b/file.c
>> index ff54014..4ee7c80 100644
>> --- a/file.c
>> +++ b/file.c
>> @@ -2626,6 +2626,13 @@ static loff_t ocfs2_file_llseek(struct file 
>> *file, loff_t offset, int whence)
>>       case SEEK_SET:
>>           break;
>>       case SEEK_END:
>> +        /*need to inode lock and unlock for update the inode size.*/
> 
> Please add spaces between comments and annotation, i.e,

> 	   /*  Need to ...... */
> 
>> +        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?

yes. it need to protect the offset adjustment.

> 
>>           break;
>>       case SEEK_CUR:
> 
> Looks your email client has not configured properly for posting patches
> because all those changes are not using tab for code indentation, please
> refer to Documentation/email-clients.txt for detail if so.

Thanks you. I will see the document .

> 
> -Jeff
> 
> 

      parent reply	other threads:[~2013-06-18  0:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-17 14:48 [Ocfs2-devel] [PATCH] ocfs2: llseek need to inode cluster lock and unlock for update the inode size in SEEK_END shencanquan
2013-06-17 14:48 ` shencanquan
2013-06-17 15:17 ` [Ocfs2-devel] " Jeff Liu
2013-06-17 15:17   ` Jeff Liu
2013-06-17 17:02   ` [Ocfs2-devel] " Mark Fasheh
2013-06-17 17:02     ` Mark Fasheh
2013-06-18  1:03     ` shencanquan
2013-06-18  0:57   ` shencanquan [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51BFB083.20202@huawei.com \
    --to=shencanquan@huawei.com \
    --cc=ocfs2-devel@oss.oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.