lkml.org 
[lkml]   [2009]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4/8 ver5] exofs: address_space_operations
    On 03/31/2009 11:04 AM, Andrew Morton wrote:
    > On Sun, 22 Mar 2009 15:58:46 +0200 Boaz Harrosh <bharrosh@panasas.com> wrote:
    >
    >> OK Now we start to read and write from osd-objects. We try to
    >> collect at most contiguous pages as possible in a single write/read.
    >> The first page index is the object's offset.
    >>
    >> TODO:
    >> In 64-bit a single bio can carry at most 128 pages.
    >> Add support of chaining multiple bios
    >>
    >>
    >> ...
    >>
    >> +static int write_exec(struct page_collect *pcol)
    >> +{
    >> + struct exofs_i_info *oi = exofs_i(pcol->inode);
    >> + struct osd_obj_id obj = {pcol->sbi->s_pid,
    >> + pcol->inode->i_ino + EXOFS_OBJ_OFF};
    >> + struct osd_request *or = NULL;
    >> + struct page_collect *pcol_copy = NULL;
    >> + loff_t i_start = pcol->pg_first << PAGE_CACHE_SHIFT;
    >
    > bug. On 32-bit this shift will overflow prior to getting promoted to
    > 64-bit. Do:
    >
    > loff_t i_start = (loff_t)pcol->pg_first << PAGE_CACHE_SHIFT;
    >

    In that case I might make pcol->pg_first loff_t.

    Why is inode->i_index not an loff_t then?
    Page-index <=> byte-offset, is done all the time 12 bits does not
    make a difference.

    >> ...
    >>
    >> +static int writepage_strip(struct page *page,
    >> + struct writeback_control *wbc_unused, void *data)
    >
    > Some of these functions could do with some comments explaining why they exist.
    >
    >> + struct page_collect *pcol = data;
    >> + struct inode *inode = pcol->inode;
    >> + struct exofs_i_info *oi = exofs_i(inode);
    >> + loff_t i_size = i_size_read(inode);
    >> + pgoff_t end_index = i_size >> PAGE_CACHE_SHIFT;
    >> + size_t len;
    >> + int ret;
    >> +
    >>
    >> ...
    >>
    >

    Thanks
    Boaz


    \
     
     \ /
      Last update: 2009-03-31 11:09    [W:2.198 / U:0.512 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site