patch-2.1.43 linux/fs/read_write.c

Next file: linux/fs/readdir.c
Previous file: linux/fs/proc/scsi.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.42/linux/fs/read_write.c linux/fs/read_write.c
@@ -168,6 +168,7 @@
 		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 @@
 		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 @@
 		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;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov