aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ceph/file.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/fs/ceph/file.c b/fs/ceph/file.c
index dd47026c6064..146ac9040141 100644
--- a/fs/ceph/file.c
+++ b/fs/ceph/file.c
@@ -526,15 +526,10 @@ more:
526 io_align = pos & ~PAGE_MASK; 526 io_align = pos & ~PAGE_MASK;
527 buf_align = (unsigned long)data & ~PAGE_MASK; 527 buf_align = (unsigned long)data & ~PAGE_MASK;
528 len = left; 528 len = left;
529 if (file->f_flags & O_DIRECT) { 529
530 /* write from beginning of first page, regardless of 530 /* write from beginning of first page, regardless of io alignment */
531 io alignment */ 531 page_align = file->f_flags & O_DIRECT ? buf_align : io_align;
532 page_align = (pos - io_align + buf_align) & ~PAGE_MASK; 532 num_pages = calc_pages_for(page_align, len);
533 num_pages = calc_pages_for((unsigned long)data, len);
534 } else {
535 page_align = pos & ~PAGE_MASK;
536 num_pages = calc_pages_for(pos, len);
537 }
538 req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout, 533 req = ceph_osdc_new_request(&fsc->client->osdc, &ci->i_layout,
539 ceph_vino(inode), pos, &len, 534 ceph_vino(inode), pos, &len,
540 CEPH_OSD_OP_WRITE, flags, 535 CEPH_OSD_OP_WRITE, flags,