lkml.org 
[lkml]   [2017]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 15/51] btrfs: comment on direct access bvec table
    Date
    Cc: Chris Mason <clm@fb.com>
    Cc: Josef Bacik <jbacik@fb.com>
    Cc: David Sterba <dsterba@suse.com>
    Cc: linux-btrfs@vger.kernel.org
    Signed-off-by: Ming Lei <ming.lei@redhat.com>
    ---
    fs/btrfs/compression.c | 4 ++++
    fs/btrfs/inode.c | 12 ++++++++++++
    2 files changed, 16 insertions(+)

    diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
    index 2c0b7b57fcd5..5972f74354ca 100644
    --- a/fs/btrfs/compression.c
    +++ b/fs/btrfs/compression.c
    @@ -541,6 +541,10 @@ blk_status_t btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,

    /* we need the actual starting offset of this extent in the file */
    read_lock(&em_tree->lock);
    + /*
    + * It is still safe to retrieve the 1st page of the bio
    + * in this way after supporting multipage bvec.
    + */
    em = lookup_extent_mapping(em_tree,
    page_offset(bio->bi_io_vec->bv_page),
    PAGE_SIZE);
    diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
    index 4ab02b34f029..7e725d84917b 100644
    --- a/fs/btrfs/inode.c
    +++ b/fs/btrfs/inode.c
    @@ -8055,6 +8055,12 @@ static void btrfs_retry_endio_nocsum(struct bio *bio)
    if (bio->bi_status)
    goto end;

    + /*
    + * WARNING:
    + *
    + * With multipage bvec, the following way of direct access to
    + * bvec table is only safe if the bio includes single page.
    + */
    ASSERT(bio->bi_vcnt == 1);
    io_tree = &BTRFS_I(inode)->io_tree;
    failure_tree = &BTRFS_I(inode)->io_failure_tree;
    @@ -8146,6 +8152,12 @@ static void btrfs_retry_endio(struct bio *bio)

    uptodate = 1;

    + /*
    + * WARNING:
    + *
    + * With multipage bvec, the following way of direct access to
    + * bvec table is only safe if the bio includes single page.
    + */
    ASSERT(bio->bi_vcnt == 1);
    ASSERT(bio->bi_io_vec->bv_len == btrfs_inode_sectorsize(done->inode));

    --
    2.9.4
    \
     
     \ /
      Last update: 2017-06-26 14:28    [W:4.444 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site