diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1997-06-17 13:20:30 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1997-06-17 13:20:30 +0000 |
commit | 7acb77a6e7bddd4c4c5aa975bbf976927c013798 (patch) | |
tree | 4139829ec6edb85f73774bb95cdec376758bfc73 /fs/read_write.c | |
parent | 64d58d4c8cd6a89ee218301ec0dc0ebfec91a4db (diff) |
Merge with 2.1.43.
Diffstat (limited to 'fs/read_write.c')
-rw-r--r-- | fs/read_write.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/read_write.c b/fs/read_write.c index dd4092301..81b19ac30 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -168,6 +168,7 @@ asmlinkage long sys_write(unsigned int fd, const char * buf, unsigned long count goto out; down(&inode->i_sem); error = write(inode,file,buf,count); + inode->i_status |= ST_MODIFIED; up(&inode->i_sem); out: fput(file, inode); @@ -248,6 +249,10 @@ static long do_readv_writev(int type, struct inode * inode, struct file * file, len = vector->iov_len; vector++; count--; + + /* Any particular reason why we do not grab the inode semaphore + * when doing writes here? -DaveM + */ nr = fn(inode, file, base, len); if (nr < 0) { if (retval) @@ -259,6 +264,8 @@ static long do_readv_writev(int type, struct inode * inode, struct file * file, if (nr != len) break; } + if(fn == (IO_fn_t) file->f_op->write) + inode->i_status |= ST_MODIFIED; if (iov != iovstack) kfree(iov); return retval; |