]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/linux/uio.h
iov_iter: Add I/O discard iterator
[linux.git] / include / linux / uio.h
index 3d8f1acc142c2a3b4a700b0b84f20af9965588d9..55ce99ddb912f9bd603e5031a328eba96e37fc78 100644 (file)
@@ -26,6 +26,7 @@ enum iter_type {
        ITER_KVEC = 2,
        ITER_BVEC = 4,
        ITER_PIPE = 8,
+       ITER_DISCARD = 16,
 };
 
 struct iov_iter {
@@ -72,6 +73,11 @@ static inline bool iov_iter_is_pipe(const struct iov_iter *i)
        return iov_iter_type(i) == ITER_PIPE;
 }
 
+static inline bool iov_iter_is_discard(const struct iov_iter *i)
+{
+       return iov_iter_type(i) == ITER_DISCARD;
+}
+
 static inline unsigned char iov_iter_rw(const struct iov_iter *i)
 {
        return i->type & (READ | WRITE);
@@ -220,6 +226,7 @@ void iov_iter_bvec(struct iov_iter *i, unsigned int direction, const struct bio_
                        unsigned long nr_segs, size_t count);
 void iov_iter_pipe(struct iov_iter *i, unsigned int direction, struct pipe_inode_info *pipe,
                        size_t count);
+void iov_iter_discard(struct iov_iter *i, unsigned int direction, size_t count);
 ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
                        size_t maxsize, unsigned maxpages, size_t *start);
 ssize_t iov_iter_get_pages_alloc(struct iov_iter *i, struct page ***pages,