git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
fs
/
udf
/
file.c
diff --git
a/fs/udf/file.c
b/fs/udf/file.c
index
a6f2acc
..
d81f2db
100644
(file)
--- a/
fs/udf/file.c
+++ b/
fs/udf/file.c
@@
-95,7
+95,7
@@
static int udf_adinicb_commit_write(struct file *file, struct page *page, unsign
return 0;
}
return 0;
}
-struct address_space_operations udf_adinicb_aops = {
+
const
struct address_space_operations udf_adinicb_aops = {
.readpage = udf_adinicb_readpage,
.writepage = udf_adinicb_writepage,
.sync_page = block_sync_page,
.readpage = udf_adinicb_readpage,
.writepage = udf_adinicb_writepage,
.sync_page = block_sync_page,
@@
-103,19
+103,21
@@
struct address_space_operations udf_adinicb_aops = {
.commit_write = udf_adinicb_commit_write,
};
.commit_write = udf_adinicb_commit_write,
};
-static ssize_t udf_file_
write(struct file * file, const char __user * buf
,
-
size_t count, loff_t *
ppos)
+static ssize_t udf_file_
aio_write(struct kiocb *iocb, const struct iovec *iov
,
+
unsigned long nr_segs, loff_t
ppos)
{
ssize_t retval;
{
ssize_t retval;
- struct inode *inode = file->f_dentry->d_inode;
+ struct file *file = iocb->ki_filp;
+ struct inode *inode = file->f_path.dentry->d_inode;
int err, pos;
int err, pos;
+ size_t count = iocb->ki_left;
if (UDF_I_ALLOCTYPE(inode) == ICBTAG_FLAG_AD_IN_ICB)
{
if (file->f_flags & O_APPEND)
pos = inode->i_size;
else
if (UDF_I_ALLOCTYPE(inode) == ICBTAG_FLAG_AD_IN_ICB)
{
if (file->f_flags & O_APPEND)
pos = inode->i_size;
else
- pos =
*
ppos;
+ pos = ppos;
if (inode->i_sb->s_blocksize < (udf_file_entry_alloc_offset(inode) +
pos + count))
if (inode->i_sb->s_blocksize < (udf_file_entry_alloc_offset(inode) +
pos + count))
@@
-136,7
+138,7
@@
static ssize_t udf_file_write(struct file * file, const char __user * buf,
}
}
}
}
- retval = generic_file_
write(file, buf, count
, ppos);
+ retval = generic_file_
aio_write(iocb, iov, nr_segs
, ppos);
if (retval > 0)
mark_inode_dirty(inode);
if (retval > 0)
mark_inode_dirty(inode);
@@
-248,12
+250,14
@@
static int udf_release_file(struct inode * inode, struct file * filp)
return 0;
}
return 0;
}
-struct file_operations udf_file_operations = {
- .read = generic_file_read,
+const struct file_operations udf_file_operations = {
+ .read = do_sync_read,
+ .aio_read = generic_file_aio_read,
.ioctl = udf_ioctl,
.open = generic_file_open,
.mmap = generic_file_mmap,
.ioctl = udf_ioctl,
.open = generic_file_open,
.mmap = generic_file_mmap,
- .write = udf_file_write,
+ .write = do_sync_write,
+ .aio_write = udf_file_aio_write,
.release = udf_release_file,
.fsync = udf_fsync_file,
.sendfile = generic_file_sendfile,
.release = udf_release_file,
.fsync = udf_fsync_file,
.sendfile = generic_file_sendfile,