diff options
-rw-r--r-- | libdiskfs/node-rdwr.c | 2 | ||||
-rw-r--r-- | libdiskfs/rdwr-internal.c | 9 |
2 files changed, 6 insertions, 5 deletions
diff --git a/libdiskfs/node-rdwr.c b/libdiskfs/node-rdwr.c index 9a4f7788..4ed6e157 100644 --- a/libdiskfs/node-rdwr.c +++ b/libdiskfs/node-rdwr.c @@ -55,7 +55,7 @@ diskfs_node_rdwr (struct node *np, amt = np->dn_stat.st_size - off; } - err = _diskfs_rdwr_internal (np, data, off, amt, dir); + err = _diskfs_rdwr_internal (np, data, off, amt, dir, 0); if (!err && amtread) *amtread = amt; diff --git a/libdiskfs/rdwr-internal.c b/libdiskfs/rdwr-internal.c index cd3f3895..914d96a0 100644 --- a/libdiskfs/rdwr-internal.c +++ b/libdiskfs/rdwr-internal.c @@ -23,13 +23,14 @@ to write from or fill on read. OFFSET is the absolute address (-1 not permitted here); AMT is the size of the read/write to perform; DIR is set for writing and clear for reading. The inode must - be locked. */ + be locked. If NOTIME is set, then don't update the mtime or atime. */ error_t _diskfs_rdwr_internal (struct node *np, char *volatile data, volatile int offset, volatile int amt, - int dir) + int dir, + int notime) { char *window; int winoff; @@ -40,7 +41,7 @@ _diskfs_rdwr_internal (struct node *np, if (dir) assert (!diskfs_readonly); - if (!diskfs_readonly) + if (!diskfs_readonly && !notime) { if (dir) np->dn_set_mtime = 1; @@ -89,7 +90,7 @@ _diskfs_rdwr_internal (struct node *np, } assert (amt == 0 || err); - if (!diskfs_readonly) + if (!diskfs_readonly && !notime) { if (dir) np->dn_set_mtime = 1; |