Signed-off-by: David Howells <dhowe...@redhat.com>
cc: Steve French <sfre...@samba.org>
cc: Shyam Prasad N <nspmangal...@gmail.com>
cc: Rohith Surabattula <rohiths.m...@gmail.com>
cc: linux-c...@vger.kernel.org
---

 fs/cifs/cifsproto.h |    3 +++
 fs/cifs/connect.c   |   16 ++++++++++++++++
 2 files changed, 19 insertions(+)

diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
index 0df3b24a0bf4..dd4931308ea6 100644
--- a/fs/cifs/cifsproto.h
+++ b/fs/cifs/cifsproto.h
@@ -245,6 +245,9 @@ extern int cifs_read_page_from_socket(struct 
TCP_Server_Info *server,
                                        unsigned int page_offset,
                                        unsigned int to_read);
 extern int cifs_setup_cifs_sb(struct cifs_sb_info *cifs_sb);
+extern int cifs_read_iter_from_socket(struct TCP_Server_Info *server,
+                                     struct iov_iter *iter,
+                                     unsigned int to_read);
 extern int cifs_match_super(struct super_block *, void *);
 extern int cifs_mount(struct cifs_sb_info *cifs_sb, struct smb3_fs_context 
*ctx);
 extern void cifs_umount(struct cifs_sb_info *);
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index ee3b7c15e884..080e19e9ee47 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -754,6 +754,22 @@ cifs_read_page_from_socket(struct TCP_Server_Info *server, 
struct page *page,
        return cifs_readv_from_socket(server, &smb_msg);
 }
 
+int
+cifs_read_iter_from_socket(struct TCP_Server_Info *server, struct iov_iter 
*iter,
+                          unsigned int to_read)
+{
+       struct msghdr smb_msg;
+       int ret;
+
+       smb_msg.msg_iter = *iter;
+       if (smb_msg.msg_iter.count > to_read)
+               smb_msg.msg_iter.count = to_read;
+       ret = cifs_readv_from_socket(server, &smb_msg);
+       if (ret > 0)
+               iov_iter_advance(iter, ret);
+       return ret;
+}
+
 static bool
 is_smb_response(struct TCP_Server_Info *server, unsigned char type)
 {


--
Linux-cachefs mailing list
Linux-cachefs@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-cachefs

Reply via email to