changeset 1226:29714c8cf683

objstore/posix: replace {read,write} ops with {read,write}_page ops Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Wed, 15 Apr 2020 10:18:28 -0400
parents 0eae5bd81c26
children ec45bc7fe702
files src/objstore/posix/obj.c
diffstat 1 files changed, 12 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/objstore/posix/obj.c	Wed Apr 15 10:21:30 2020 -0400
+++ b/src/objstore/posix/obj.c	Wed Apr 15 10:18:28 2020 -0400
@@ -392,8 +392,7 @@
 	return ret;
 }
 
-static ssize_t posix_read(struct objver *ver, void *buf, size_t len,
-			  uint64_t offset)
+static int posix_read_page(struct objver *ver, void *buf, uint64_t pgno)
 {
 	int ret;
 	int fd;
@@ -402,18 +401,22 @@
 	if (fd < 0)
 		return fd;
 
-	ret = xpread(fd, buf, len, sizeof(struct posix_ver_header) + offset);
+	ret = xpread(fd, buf, PAGE_SIZE,
+		     sizeof(struct posix_ver_header) + (pgno * PAGE_SIZE));
 	/* no need to check for error since we're returning now anyway */
 
 	xclose(fd);
 
-	return ret ? ret : len;
+	return ret;
 }
 
-static ssize_t posix_write(struct objver *ver, const void *buf, size_t len,
-			   uint64_t offset)
+static int posix_write_page(struct objver *ver, const void *buf, uint64_t pgno)
 {
-	return write_ver_data(ver, -1, buf, len, offset);
+	ssize_t ret;
+
+	ret = write_ver_data(ver, -1, buf, PAGE_SIZE, pgno * PAGE_SIZE);
+
+	return (ret == PAGE_SIZE) ? 0 : ret;
 }
 
 static void posix_free(struct obj *obj)
@@ -428,7 +431,7 @@
 	.cow        = posix_cow,
 	.getattr    = posix_getattr,
 	.setattr    = posix_setattr,
-	.read       = posix_read,
-	.write      = posix_write,
+	.read_page  = posix_read_page,
+	.write_page = posix_write_page,
 	.free       = posix_free,
 };