--- linux/fs/minix/file.c 2018/04/24 18:07:13 1.1 +++ linux/fs/minix/file.c 2018/04/24 18:12:26 1.1.1.4 @@ -1,21 +1,20 @@ /* - * linux/fs/minix/file.c + * linux/fs/minix/file.c * - * minix regular file handling primitives + * Copyright (C) 1991, 1992 Linus Torvalds + * + * minix regular file handling primitives */ -#include -#include - -#include -#include - #include #include #include #include #include +#include +#include +#include #define NBUF 16 @@ -106,7 +105,7 @@ int minix_file_read(struct inode * inode if (blocks) { --blocks; if (nr = minix_bmap(inode,block++)) { - *bhb = getblk(inode->i_dev,nr); + *bhb = getblk(inode->i_dev,nr,BLOCK_SIZE); if (!(*bhb)->b_uptodate) ll_rw_block(READ,*bhb); } else @@ -151,8 +150,10 @@ int minix_file_read(struct inode * inode } while (left > 0); if (!read) return -EIO; - inode->i_atime = CURRENT_TIME; - inode->i_dirt = 1; + if (!IS_RDONLY(inode)) { + inode->i_atime = CURRENT_TIME; + inode->i_dirt = 1; + } return read; } @@ -190,9 +191,9 @@ static int minix_file_write(struct inode if (c > count-written) c = count-written; if (c == BLOCK_SIZE) - bh = getblk(inode->i_dev, block); + bh = getblk(inode->i_dev, block, BLOCK_SIZE); else - bh = bread(inode->i_dev,block); + bh = bread(inode->i_dev,block, BLOCK_SIZE); if (!bh) { if (!written) written = -EIO; @@ -212,10 +213,8 @@ static int minix_file_write(struct inode brelse(bh); } inode->i_mtime = CURRENT_TIME; - if (!(filp->f_flags & O_APPEND)) { - filp->f_pos = pos; - inode->i_ctime = CURRENT_TIME; - } + inode->i_ctime = CURRENT_TIME; + filp->f_pos = pos; inode->i_dirt = 1; return written; }