X-Git-Url: https://bbs.cooldavid.org/git/?a=blobdiff_plain;f=mm%2Ffilemap.c;h=75572b5f23746a4b47a42920980a22e6a5251fe7;hb=0116651c85e671a693dd2f56e95dd651f746c973;hp=33f81252a74420a57189d34c22510d1c1dd5f936;hpb=68da336a14e16c2de95e987f3200995b707d7038;p=net-next-2.6.git diff --git a/mm/filemap.c b/mm/filemap.c index 33f81252a74..75572b5f237 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2193,12 +2193,12 @@ generic_file_direct_write(struct kiocb *iocb, const struct iovec *iov, } if (written > 0) { - loff_t end = pos + written; - if (end > i_size_read(inode) && !S_ISBLK(inode->i_mode)) { - i_size_write(inode, end); + pos += written; + if (pos > i_size_read(inode) && !S_ISBLK(inode->i_mode)) { + i_size_write(inode, pos); mark_inode_dirty(inode); } - *ppos = end; + *ppos = pos; } out: return written;