diff options
author | Sage Weil <sage@inktank.com> | 2012-09-24 21:01:02 -0700 |
---|---|---|
committer | Alex Elder <elder@inktank.com> | 2012-10-01 17:20:00 -0500 |
commit | 6816282dab3a72efe8c0d182c1bc2960d87f4322 (patch) | |
tree | c36cea753185ad22b073d41a1e5e5dbe56a928a1 /fs/ceph | |
parent | d63b77f4c552cc3a20506871046ab0fcbc332609 (diff) | |
download | linux-3.10-6816282dab3a72efe8c0d182c1bc2960d87f4322.tar.gz linux-3.10-6816282dab3a72efe8c0d182c1bc2960d87f4322.tar.bz2 linux-3.10-6816282dab3a72efe8c0d182c1bc2960d87f4322.zip |
ceph: propagate layout error on osd request creation
If we are creating an osd request and get an invalid layout, return
an EINVAL to the caller. We switch up the return to have an error
code instead of NULL implying -ENOMEM.
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Alex Elder <elder@inktank.com>
Diffstat (limited to 'fs/ceph')
-rw-r--r-- | fs/ceph/addr.c | 8 | ||||
-rw-r--r-- | fs/ceph/file.c | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 452e71a1b75..4469b63c9b7 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -308,8 +308,8 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max) NULL, 0, ci->i_truncate_seq, ci->i_truncate_size, NULL, false, 1, 0); - if (!req) - return -ENOMEM; + if (IS_ERR(req)) + return PTR_ERR(req); /* build page vector */ nr_pages = len >> PAGE_CACHE_SHIFT; @@ -832,8 +832,8 @@ get_more_pages: ci->i_truncate_size, &inode->i_mtime, true, 1, 0); - if (!req) { - rc = -ENOMEM; + if (IS_ERR(req)) { + rc = PTR_ERR(req); unlock_page(page); break; } diff --git a/fs/ceph/file.c b/fs/ceph/file.c index ecebbc09bfc..5840d2aaed1 100644 --- a/fs/ceph/file.c +++ b/fs/ceph/file.c @@ -536,8 +536,8 @@ more: do_sync, ci->i_truncate_seq, ci->i_truncate_size, &mtime, false, 2, page_align); - if (!req) - return -ENOMEM; + if (IS_ERR(req)) + return PTR_ERR(req); if (file->f_flags & O_DIRECT) { pages = ceph_get_direct_page_vector(data, num_pages, false); |