Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Nov 2014 13:06:48 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r274850 - projects/sendfile/sys/vm
Message-ID:  <201411221306.sAMD6mif055658@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Sat Nov 22 13:06:47 2014
New Revision: 274850
URL: https://svnweb.freebsd.org/changeset/base/274850

Log:
  Iodone callback should receive UNIX error code.
  
  Noticed by:	kib

Modified:
  projects/sendfile/sys/vm/swap_pager.c

Modified: projects/sendfile/sys/vm/swap_pager.c
==============================================================================
--- projects/sendfile/sys/vm/swap_pager.c	Sat Nov 22 12:48:09 2014	(r274849)
+++ projects/sendfile/sys/vm/swap_pager.c	Sat Nov 22 13:06:47 2014	(r274850)
@@ -1269,11 +1269,24 @@ static int
 swap_pager_getpages_async(vm_object_t object, vm_page_t *m, int count,
     int reqpage, pgo_getpages_iodone_t *iodone, void *arg)
 {
-	int r;
+	int r, error;
 
 	r = swap_pager_getpages(object, m, count, reqpage);
 	VM_OBJECT_WUNLOCK(object);
-	(iodone)(arg, m, count, r);
+	switch (r) {
+	case VM_PAGER_OK:
+		error = 0;
+		break;
+	case VM_PAGER_ERROR:
+		error = EIO;
+		break;
+	case VM_PAGER_FAIL:
+		error = EINVAL;
+		break;
+	default:
+		error = EDOOFUS;
+	}
+	(iodone)(arg, m, count, error);
 	VM_OBJECT_WLOCK(object);
 
 	return (r);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411221306.sAMD6mif055658>