Re: Fwd: fsx-linux failing with latest cifs-2.6 git tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



thx ... the only other thing I noticed was that the original patch removed

2067         if ((offset >= i_size) ||
2068             ((from == 0) && (offset + to) >= i_size)) {
2069                 /*
2070                  * We don't need to read data beyond the end of the file.
2071                  * zero it, and set the page uptodate
2072                  */
2073                 simple_prepare_write(file, page, from, to);
2074                 SetPageUptodate(page);

which means we do a lot of extra reads (which return no bytes) when we
write near or at end of file



On Fri, Nov 21, 2008 at 2:41 PM, Dave Kleikamp
<shaggy@xxxxxxxxxxxxxxxxxx> wrote:
> On Fri, 2008-11-21 at 14:38 -0600, Steve French wrote:
>> Fix attached.
>>
>> Shaggy/Jeff/Nick etc. do you want to review/ack it since it is late in the rc?
>
> Acked-by: Dave Kleikamp <shaggy@xxxxxxxxxxxxxxxxxx>
>
>>
>> On Fri, Nov 21, 2008 at 2:18 PM, Steve French <smfrench@xxxxxxxxx> wrote:
>> > Looks like the following change to cifs_write_begin does fix it ...
>> > thanks Shaggy ...
>> >
>> > @@ -2062,8 +2074,10 @@ static int cifs_write_begin(struct file *file,
>> > struct address_space *mapping,
>> >  {
>> >        pgoff_t index = pos >> PAGE_CACHE_SHIFT;
>> >        loff_t offset = pos & (PAGE_CACHE_SIZE - 1);
>> > +       loff_t page_start = pos & PAGE_MASK;
>> >
>> >       cFYI(1, ("write_begin from %lld len %d", (long long)pos, len));
>> > @@ -2081,13 +2095,14 @@ static int cifs_write_begin(struct file *file,
>> > struct address_space *mapping,
>> >                int rc;
>> >
>> >                /* might as well read a page, it is fast enough */
>> > -               rc = cifs_readpage_worker(file, *pagep, &offset);
>> > +               rc = cifs_readpage_worker(file, *pagep, &page_start);
>> >
>> >                /* we do not need to pass errors back
>> >                   e.g. if we do not have read access to the file
>> >                   because cifs_write_end will attempt synchronous writes
>> >                   -- shaggy */
>> >
>> >
>
> --
> David Kleikamp
> IBM Linux Technology Center
>
>



-- 
Thanks,

Steve
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux