diff options
Diffstat (limited to 'fs/hpfs')
-rw-r--r-- | fs/hpfs/dir.c | 4 | ||||
-rw-r--r-- | fs/hpfs/file.c | 7 | ||||
-rw-r--r-- | fs/hpfs/hpfs_fn.h | 2 | ||||
-rw-r--r-- | fs/hpfs/namei.c | 2 |
4 files changed, 12 insertions, 3 deletions
diff --git a/fs/hpfs/dir.c b/fs/hpfs/dir.c index f46ae025bfb..96a8ed91ced 100644 --- a/fs/hpfs/dir.c +++ b/fs/hpfs/dir.c | |||
@@ -29,6 +29,10 @@ static loff_t hpfs_dir_lseek(struct file *filp, loff_t off, int whence) | |||
29 | struct hpfs_inode_info *hpfs_inode = hpfs_i(i); | 29 | struct hpfs_inode_info *hpfs_inode = hpfs_i(i); |
30 | struct super_block *s = i->i_sb; | 30 | struct super_block *s = i->i_sb; |
31 | 31 | ||
32 | /* Somebody else will have to figure out what to do here */ | ||
33 | if (whence == SEEK_DATA || whence == SEEK_HOLE) | ||
34 | return -EINVAL; | ||
35 | |||
32 | hpfs_lock(s); | 36 | hpfs_lock(s); |
33 | 37 | ||
34 | /*printk("dir lseek\n");*/ | 38 | /*printk("dir lseek\n");*/ |
diff --git a/fs/hpfs/file.c b/fs/hpfs/file.c index 89c500ee521..89d2a5803ae 100644 --- a/fs/hpfs/file.c +++ b/fs/hpfs/file.c | |||
@@ -18,9 +18,14 @@ static int hpfs_file_release(struct inode *inode, struct file *file) | |||
18 | return 0; | 18 | return 0; |
19 | } | 19 | } |
20 | 20 | ||
21 | int hpfs_file_fsync(struct file *file, int datasync) | 21 | int hpfs_file_fsync(struct file *file, loff_t start, loff_t end, int datasync) |
22 | { | 22 | { |
23 | struct inode *inode = file->f_mapping->host; | 23 | struct inode *inode = file->f_mapping->host; |
24 | int ret; | ||
25 | |||
26 | ret = filemap_write_and_wait_range(file->f_mapping, start, end); | ||
27 | if (ret) | ||
28 | return ret; | ||
24 | return sync_blockdev(inode->i_sb->s_bdev); | 29 | return sync_blockdev(inode->i_sb->s_bdev); |
25 | } | 30 | } |
26 | 31 | ||
diff --git a/fs/hpfs/hpfs_fn.h b/fs/hpfs/hpfs_fn.h index dd552f862c8..331b5e234ef 100644 --- a/fs/hpfs/hpfs_fn.h +++ b/fs/hpfs/hpfs_fn.h | |||
@@ -258,7 +258,7 @@ void hpfs_set_ea(struct inode *, struct fnode *, const char *, | |||
258 | 258 | ||
259 | /* file.c */ | 259 | /* file.c */ |
260 | 260 | ||
261 | int hpfs_file_fsync(struct file *, int); | 261 | int hpfs_file_fsync(struct file *, loff_t, loff_t, int); |
262 | extern const struct file_operations hpfs_file_ops; | 262 | extern const struct file_operations hpfs_file_ops; |
263 | extern const struct inode_operations hpfs_file_iops; | 263 | extern const struct inode_operations hpfs_file_iops; |
264 | extern const struct address_space_operations hpfs_aops; | 264 | extern const struct address_space_operations hpfs_aops; |
diff --git a/fs/hpfs/namei.c b/fs/hpfs/namei.c index acf95dab2aa..2df69e2f07c 100644 --- a/fs/hpfs/namei.c +++ b/fs/hpfs/namei.c | |||
@@ -398,7 +398,7 @@ again: | |||
398 | hpfs_unlock(dir->i_sb); | 398 | hpfs_unlock(dir->i_sb); |
399 | return -ENOSPC; | 399 | return -ENOSPC; |
400 | } | 400 | } |
401 | if (generic_permission(inode, MAY_WRITE, 0, NULL) || | 401 | if (generic_permission(inode, MAY_WRITE) || |
402 | !S_ISREG(inode->i_mode) || | 402 | !S_ISREG(inode->i_mode) || |
403 | get_write_access(inode)) { | 403 | get_write_access(inode)) { |
404 | d_rehash(dentry); | 404 | d_rehash(dentry); |