Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 9041
b: refs/heads/master
c: ef40226
h: refs/heads/master
i:
  9039: cab2458
v: v3
  • Loading branch information
OGAWA Hirofumi authored and Linus Torvalds committed Sep 17, 2005
1 parent 30b0c41 commit dcfbeab
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 37 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4fb3a53860cee2aaaf81186c451b7da0b95b45c1
refs/heads/master: ef402268f7c9ab1872cafa1e638eb78a75b7c18f
37 changes: 2 additions & 35 deletions trunk/fs/fat/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,39 +12,6 @@
#include <linux/smp_lock.h>
#include <linux/buffer_head.h>

static ssize_t fat_file_aio_write(struct kiocb *iocb, const char __user *buf,
size_t count, loff_t pos)
{
struct inode *inode = iocb->ki_filp->f_dentry->d_inode;
int retval;

retval = generic_file_aio_write(iocb, buf, count, pos);
if (retval > 0) {
inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC;
MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
mark_inode_dirty(inode);
// check the locking rules
// if (IS_SYNC(inode))
// fat_sync_inode(inode);
}
return retval;
}

static ssize_t fat_file_writev(struct file *filp, const struct iovec *iov,
unsigned long nr_segs, loff_t *ppos)
{
struct inode *inode = filp->f_dentry->d_inode;
int retval;

retval = generic_file_writev(filp, iov, nr_segs, ppos);
if (retval > 0) {
inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC;
MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
mark_inode_dirty(inode);
}
return retval;
}

int fat_generic_ioctl(struct inode *inode, struct file *filp,
unsigned int cmd, unsigned long arg)
{
Expand Down Expand Up @@ -148,9 +115,9 @@ struct file_operations fat_file_operations = {
.read = do_sync_read,
.write = do_sync_write,
.readv = generic_file_readv,
.writev = fat_file_writev,
.writev = generic_file_writev,
.aio_read = generic_file_aio_read,
.aio_write = fat_file_aio_write,
.aio_write = generic_file_aio_write,
.mmap = generic_file_mmap,
.ioctl = fat_generic_ioctl,
.fsync = file_fsync,
Expand Down
15 changes: 14 additions & 1 deletion trunk/fs/fat/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,19 @@ static int fat_prepare_write(struct file *file, struct page *page,
&MSDOS_I(page->mapping->host)->mmu_private);
}

static int fat_commit_write(struct file *file, struct page *page,
unsigned from, unsigned to)
{
struct inode *inode = page->mapping->host;
int err = generic_commit_write(file, page, from, to);
if (!err && !(MSDOS_I(inode)->i_attrs & ATTR_ARCH)) {
inode->i_mtime = inode->i_ctime = CURRENT_TIME_SEC;
MSDOS_I(inode)->i_attrs |= ATTR_ARCH;
mark_inode_dirty(inode);
}
return err;
}

static sector_t _fat_bmap(struct address_space *mapping, sector_t block)
{
return generic_block_bmap(mapping, block, fat_get_block);
Expand All @@ -112,7 +125,7 @@ static struct address_space_operations fat_aops = {
.writepage = fat_writepage,
.sync_page = block_sync_page,
.prepare_write = fat_prepare_write,
.commit_write = generic_commit_write,
.commit_write = fat_commit_write,
.bmap = _fat_bmap
};

Expand Down

0 comments on commit dcfbeab

Please sign in to comment.