diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2018-02-17 09:29:58 +0100 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2018-04-02 10:12:38 +0200 |
commit | dccbf08005df800f5c8e948ab6132ed5536134bc (patch) | |
tree | 9df1438b466899a694f724fdbdca2c0f9aca514e /fs/ceph/addr.c | |
parent | libceph: eliminate overflows in ceph_calc_file_object_mapping() (diff) | |
download | linux-dccbf08005df800f5c8e948ab6132ed5536134bc.tar.xz linux-dccbf08005df800f5c8e948ab6132ed5536134bc.zip |
libceph, ceph: change ceph_calc_file_object_mapping() signature
- make it void
- xlen (object extent length) out parameter should be u32 because only
a single stripe unit is mapped at a time
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Diffstat (limited to 'fs/ceph/addr.c')
-rw-r--r-- | fs/ceph/addr.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index b4336b42ce3b..c0fe1b6f47ac 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -945,19 +945,15 @@ get_more_pages: if (locked_pages == 0) { u64 objnum; u64 objoff; + u32 xlen; /* prepare async write request */ offset = (u64)page_offset(page); - len = wsize; - - rc = ceph_calc_file_object_mapping(&ci->i_layout, - offset, len, - &objnum, &objoff, - &len); - if (rc < 0) { - unlock_page(page); - break; - } + ceph_calc_file_object_mapping(&ci->i_layout, + offset, wsize, + &objnum, &objoff, + &xlen); + len = xlen; num_ops = 1; strip_unit_end = page->index + |