changeset 890:aa5470a5ef8a

objstore: move objstore_{read,write} to obj_rw.c Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
date Mon, 19 Dec 2022 19:39:43 -0500
parents 45a236e09b43
children 77a35abc6a24
files src/objstore/obj_ops.c src/objstore/obj_rw.c
diffstat 2 files changed, 104 insertions(+), 104 deletions(-) [+]
line wrap: on
line diff
--- a/src/objstore/obj_ops.c	Mon Dec 19 19:38:40 2022 -0500
+++ b/src/objstore/obj_ops.c	Mon Dec 19 19:39:43 2022 -0500
@@ -166,110 +166,6 @@
 	return ret;
 }
 
-ssize_t objstore_read(struct objstore_open_obj_info *open, void *buf,
-		      size_t len, uint64_t offset)
-{
-	struct obj *obj;
-	ssize_t ret;
-
-	if (!open || !buf)
-		return -EINVAL;
-
-	if (len > (SIZE_MAX / 2))
-		return -EOVERFLOW;
-
-	obj = open->obj;
-
-	/* nothing to do */
-	if (!len)
-		return 0;
-
-	MXLOCK(&obj->lock);
-	if (NATTR_ISDIR(open->ver->attrs.mode))
-		/* TODO: do we need to check for other types? */
-		ret = -EISDIR;
-	else
-		ret = obj_read(open->ver, buf, len, offset);
-	MXUNLOCK(&obj->lock);
-
-	return ret;
-}
-
-ssize_t objstore_write(struct objstore_open_obj_info *open, const void *buf,
-		       size_t len, uint64_t offset)
-{
-	struct objver *newver;
-	struct obj *obj;
-	struct txn *txn;
-	ssize_t ret;
-
-	if (!open || !buf)
-		return -EINVAL;
-
-	if (len > (SIZE_MAX / 2))
-		return -EOVERFLOW;
-
-	obj = open->obj;
-
-	if (open->qualified)
-		return -EROFS;
-
-	/* nothing to do */
-	if (!len)
-		return 0;
-
-	MXLOCK(&obj->lock);
-
-	if (NATTR_ISDIR(open->ver->attrs.mode)) {
-		/* TODO: do we need to check for other types? */
-		ret = -EISDIR;
-		goto err;
-	}
-
-	/*
-	 * fire off the txn
-	 */
-	txn = txn_begin(obj->clone);
-	if (IS_ERR(txn)) {
-		ret = PTR_ERR(txn);
-		goto err;
-	}
-
-	newver = obj_cow(txn, open);
-	if (IS_ERR(newver)) {
-		ret = PTR_ERR(newver);
-		goto err_txn;
-	}
-
-	/* extend the file if necessary */
-	if ((offset + len) > newver->attrs.size) {
-		struct nattr attrs = {
-			.size = offset + len,
-		};
-
-		obj_setattr(txn, newver, &attrs, OBJ_ATTR_SIZE);
-	}
-
-	ret = obj_write(txn, newver, buf, len, offset);
-
-err_txn:
-	if (ret < 0) {
-		txn_abort(txn);
-	} else {
-		int ret2;
-
-		ret2 = txn_commit(txn);
-		if (ret2)
-			ret = ret2;
-	}
-	newver = NULL; /* prevent accidental use */
-
-err:
-	MXUNLOCK(&obj->lock);
-
-	return ret;
-}
-
 /*
  * Directory operations
  *
--- a/src/objstore/obj_rw.c	Mon Dec 19 19:38:40 2022 -0500
+++ b/src/objstore/obj_rw.c	Mon Dec 19 19:39:43 2022 -0500
@@ -173,3 +173,107 @@
 	 */
 	return written ? written : ret;
 }
+
+ssize_t objstore_read(struct objstore_open_obj_info *open, void *buf,
+		      size_t len, uint64_t offset)
+{
+	struct obj *obj;
+	ssize_t ret;
+
+	if (!open || !buf)
+		return -EINVAL;
+
+	if (len > (SIZE_MAX / 2))
+		return -EOVERFLOW;
+
+	obj = open->obj;
+
+	/* nothing to do */
+	if (!len)
+		return 0;
+
+	MXLOCK(&obj->lock);
+	if (NATTR_ISDIR(open->ver->attrs.mode))
+		/* TODO: do we need to check for other types? */
+		ret = -EISDIR;
+	else
+		ret = obj_read(open->ver, buf, len, offset);
+	MXUNLOCK(&obj->lock);
+
+	return ret;
+}
+
+ssize_t objstore_write(struct objstore_open_obj_info *open, const void *buf,
+		       size_t len, uint64_t offset)
+{
+	struct objver *newver;
+	struct obj *obj;
+	struct txn *txn;
+	ssize_t ret;
+
+	if (!open || !buf)
+		return -EINVAL;
+
+	if (len > (SIZE_MAX / 2))
+		return -EOVERFLOW;
+
+	obj = open->obj;
+
+	if (open->qualified)
+		return -EROFS;
+
+	/* nothing to do */
+	if (!len)
+		return 0;
+
+	MXLOCK(&obj->lock);
+
+	if (NATTR_ISDIR(open->ver->attrs.mode)) {
+		/* TODO: do we need to check for other types? */
+		ret = -EISDIR;
+		goto err;
+	}
+
+	/*
+	 * fire off the txn
+	 */
+	txn = txn_begin(obj->clone);
+	if (IS_ERR(txn)) {
+		ret = PTR_ERR(txn);
+		goto err;
+	}
+
+	newver = obj_cow(txn, open);
+	if (IS_ERR(newver)) {
+		ret = PTR_ERR(newver);
+		goto err_txn;
+	}
+
+	/* extend the file if necessary */
+	if ((offset + len) > newver->attrs.size) {
+		struct nattr attrs = {
+			.size = offset + len,
+		};
+
+		obj_setattr(txn, newver, &attrs, OBJ_ATTR_SIZE);
+	}
+
+	ret = obj_write(txn, newver, buf, len, offset);
+
+err_txn:
+	if (ret < 0) {
+		txn_abort(txn);
+	} else {
+		int ret2;
+
+		ret2 = txn_commit(txn);
+		if (ret2)
+			ret = ret2;
+	}
+	newver = NULL; /* prevent accidental use */
+
+err:
+	MXUNLOCK(&obj->lock);
+
+	return ret;
+}