]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/linux/fs.h
iov_iter: let callers extract iovecs and bio_vecs
[karo-tx-linux.git] / include / linux / fs.h
index fbe02cc190daa2bf331420bf12f49aac40bdf903..e717b47af09a34433900cce3ecf7525536739962 100644 (file)
@@ -372,6 +372,17 @@ static inline void iov_iter_init_bvec(struct iov_iter *i,
 
        iov_iter_advance(i, written);
 }
+
+static inline int iov_iter_has_bvec(struct iov_iter *i)
+{
+       return i->ops == &ii_bvec_ops;
+}
+
+static inline struct bio_vec *iov_iter_bvec(struct iov_iter *i)
+{
+       BUG_ON(!iov_iter_has_bvec(i));
+       return (struct bio_vec *)i->data;
+}
 #endif
 
 extern struct iov_iter_ops ii_iovec_ops;
@@ -389,8 +400,14 @@ static inline void iov_iter_init(struct iov_iter *i,
        iov_iter_advance(i, written);
 }
 
+static inline int iov_iter_has_iovec(struct iov_iter *i)
+{
+       return i->ops == &ii_iovec_ops;
+}
+
 static inline struct iovec *iov_iter_iovec(struct iov_iter *i)
 {
+       BUG_ON(!iov_iter_has_iovec(i));
        return (struct iovec *)i->data;
 }