aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-03-02 15:30:33 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-03-13 21:22:26 -0400
commitd64547999c591c47bfac279fa4027bdbd29c7ea0 (patch)
tree7365075ce7f4a064fdf56495e5392558acf92562
parentba81523eaac3df20ea884603bd67a74089900814 (diff)
downloadvfs-d64547999c591c47bfac279fa4027bdbd29c7ea0.tar.gz
bcachefs: copy_(to|from)_user_errcode()
we've got some helpers that return errors sanely, move them to a more common location for use in fs-ioctl.c Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/chardev.c6
-rw-r--r--fs/bcachefs/util.h16
2 files changed, 16 insertions, 6 deletions
diff --git a/fs/bcachefs/chardev.c b/fs/bcachefs/chardev.c
index b584d78cb39cc..38defa19d52d7 100644
--- a/fs/bcachefs/chardev.c
+++ b/fs/bcachefs/chardev.c
@@ -22,12 +22,6 @@
#include <linux/slab.h>
#include <linux/uaccess.h>
-__must_check
-static int copy_to_user_errcode(void __user *to, const void *from, unsigned long n)
-{
- return copy_to_user(to, from, n) ? -EFAULT : 0;
-}
-
/* returns with ref on ca->ref */
static struct bch_dev *bch2_device_lookup(struct bch_fs *c, u64 dev,
unsigned flags)
diff --git a/fs/bcachefs/util.h b/fs/bcachefs/util.h
index b3d3a7349814c..adff17f6f524b 100644
--- a/fs/bcachefs/util.h
+++ b/fs/bcachefs/util.h
@@ -848,4 +848,20 @@ static inline bool qstr_eq(const struct qstr l, const struct qstr r)
void bch2_darray_str_exit(darray_str *);
int bch2_split_devs(const char *, darray_str *);
+#ifdef __KERNEL__
+
+__must_check
+static inline int copy_to_user_errcode(void __user *to, const void *from, unsigned long n)
+{
+ return copy_to_user(to, from, n) ? -EFAULT : 0;
+}
+
+__must_check
+static inline int copy_from_user_errcode(void *to, const void __user *from, unsigned long n)
+{
+ return copy_from_user(to, from, n) ? -EFAULT : 0;
+}
+
+#endif
+
#endif /* _BCACHEFS_UTIL_H */