Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9e97198dbf318be7958b57900d05b37c7e09ad7c
Commit:     9e97198dbf318be7958b57900d05b37c7e09ad7c
Parent:     12f32bb31772e72d8cf52a29f961561bccc54c37
Author:     Jens Axboe <[EMAIL PROTECTED]>
AuthorDate: Tue Jan 29 21:05:57 2008 +0100
Committer:  Jens Axboe <[EMAIL PROTECTED]>
CommitDate: Tue Jan 29 21:55:20 2008 +0100

    splice: fix problem with atime not being updated
    
    A bug report on nfsd that states that since it was switched to use
    splice instead of sendfile, the atime was no longer being updated
    on the input file. do_generic_mapping_read() does this when accessing
    the file, make splice do it for the direct splice handler.
    
    Signed-off-by: Jens Axboe <[EMAIL PROTECTED]>
---
 fs/splice.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/fs/splice.c b/fs/splice.c
index 0a0b79b..1577a73 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1031,7 +1031,11 @@ ssize_t splice_direct_to_actor(struct file *in, struct 
splice_desc *sd,
                        goto out_release;
        }
 
+done:
        pipe->nrbufs = pipe->curbuf = 0;
+       if (bytes > 0)
+               file_accessed(in);
+
        return bytes;
 
 out_release:
@@ -1047,16 +1051,11 @@ out_release:
                        buf->ops = NULL;
                }
        }
-       pipe->nrbufs = pipe->curbuf = 0;
-
-       /*
-        * If we transferred some data, return the number of bytes:
-        */
-       if (bytes > 0)
-               return bytes;
 
-       return ret;
+       if (!bytes)
+               bytes = ret;
 
+       goto done;
 }
 EXPORT_SYMBOL(splice_direct_to_actor);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to