linux-2.6.33/do_sync_write()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#a7288b0b]
#backlinks
*説明 [#q6b6389a]
-パス: [[linux-2.6.33/fs/read_write.c]]
-FIXME: これは何?
--説明
**引数 [#ff3bd40b]
-struct file *filp
--
--[[linux-2.6.33/file]]
-const char __user *buf
--
-size_t len
--
-loff_t *ppos
--
**返り値 [#md83fee2]
-ssize_t
--
**参考 [#z587c6e4]
関数内でファイルシステムの aio_write を呼び出す。
-標準の非同期 write 関数を使用するファイルシステム
.aio_write = generic_file_aio_write, fs/adfs/file...
.aio_write = generic_file_aio_write, fs/affs/file...
.aio_write = generic_file_aio_write, fs/bfs/file.c:
.aio_write = generic_file_aio_write, fs/ecryptfs/...
.aio_write = generic_file_aio_write, fs/exofs/fil...
.aio_write = generic_file_aio_write, fs/ext2/file...
.aio_write = generic_file_aio_write, fs/ext3/file...
.aio_write = generic_file_aio_write, fs/fat/file.c:
.aio_write = generic_file_aio_write, fs/hfs/inode...
.aio_write = generic_file_aio_write, fs/hfsplus/i...
.aio_write = generic_file_aio_write, fs/hostfs/ho...
.aio_write = generic_file_aio_write, fs/hpfs/file...
.aio_write = generic_file_aio_write, fs/jffs2/fil...
.aio_write = generic_file_aio_write, fs/jfs/file.c:
.aio_write = generic_file_aio_write, fs/minix/fil...
.aio_write = generic_file_aio_write, fs/nilfs2/fi...
.aio_write = generic_file_aio_write, fs/omfs/file...
.aio_write = generic_file_aio_write, fs/ramfs/fil...
.aio_write = generic_file_aio_write, fs/ramfs/fil...
.aio_write = generic_file_aio_write, fs/reiserfs/...
.aio_write = generic_file_aio_write, fs/sysv/file...
.aio_write = generic_file_aio_write, fs/ufs/file.c:
-独自の非同期 write 関数を使用するファイルシステム
.aio_write = afs_file_write, fs/afs/file.c:
.aio_write = bad_file_aio_write, fs/bad_inode...
.aio_write = blkdev_aio_write, fs/block_dev...
.aio_write = cifs_file_aio_write, fs/cifs/cifs...
.aio_write = ext4_file_write, fs/ext4/file...
.aio_write = fuse_dev_write, fs/fuse/dev.c:
.aio_write = fuse_file_aio_write, fs/fuse/file...
.aio_write = gfs2_file_aio_write, fs/gfs2/file...
.aio_write = nfs_file_write, fs/nfs/file.c:
.aio_write = ntfs_file_aio_write, fs/ntfs/file...
.aio_write = ocfs2_file_aio_write, fs/ocfs2/fil...
.aio_write = pipe_write, fs/pipe.c:
.aio_write = smb_file_aio_write, fs/smbfs/fil...
.aio_write = ubifs_aio_write, fs/ubifs/fil...
.aio_write = udf_file_aio_write, fs/udf/file.c:
.aio_write = xfs_file_aio_write, fs/xfs/linux...
*実装 [#v49bb27c]
ssize_t do_sync_write(struct file *filp, const char __us...
{
struct iovec iov = { .iov_base = (void __user *)buf, .i...
struct kiocb kiocb;
ssize_t ret;
-
--[[linux-2.6.33/iovec]]
-
--[[linux-2.6.33/kiocb]]
init_sync_kiocb(&kiocb, filp);
kiocb.ki_pos = *ppos;
kiocb.ki_left = len;
-
--[[linux-2.6.33/init_sync_kiocb()]]
for (;;) {
ret = filp->f_op->aio_write(&kiocb, &iov, 1, kiocb.ki_...
if (ret != -EIOCBRETRY)
break;
wait_on_retry_sync_kiocb(&kiocb);
-filp->f_op は struct file_operations 型
--[[linux-2.6.33/file_operations]]
-
--[[linux-2.6.33/wait_on_retry_sync_kiocb()]]
}
if (-EIOCBQUEUED == ret)
ret = wait_on_sync_kiocb(&kiocb);
*ppos = kiocb.ki_pos;
-
--[[linux-2.6.33/wait_on_sync_kiocb()]]
return ret;
}
EXPORT_SYMBOL(do_sync_write);
-ライセンスに関係なくシンボルを公開する。
--[[linux-2.6.33/EXPORT_SYMBOL()]]
*コメント [#r39d8e85]
終了行:
*参照元 [#a7288b0b]
#backlinks
*説明 [#q6b6389a]
-パス: [[linux-2.6.33/fs/read_write.c]]
-FIXME: これは何?
--説明
**引数 [#ff3bd40b]
-struct file *filp
--
--[[linux-2.6.33/file]]
-const char __user *buf
--
-size_t len
--
-loff_t *ppos
--
**返り値 [#md83fee2]
-ssize_t
--
**参考 [#z587c6e4]
関数内でファイルシステムの aio_write を呼び出す。
-標準の非同期 write 関数を使用するファイルシステム
.aio_write = generic_file_aio_write, fs/adfs/file...
.aio_write = generic_file_aio_write, fs/affs/file...
.aio_write = generic_file_aio_write, fs/bfs/file.c:
.aio_write = generic_file_aio_write, fs/ecryptfs/...
.aio_write = generic_file_aio_write, fs/exofs/fil...
.aio_write = generic_file_aio_write, fs/ext2/file...
.aio_write = generic_file_aio_write, fs/ext3/file...
.aio_write = generic_file_aio_write, fs/fat/file.c:
.aio_write = generic_file_aio_write, fs/hfs/inode...
.aio_write = generic_file_aio_write, fs/hfsplus/i...
.aio_write = generic_file_aio_write, fs/hostfs/ho...
.aio_write = generic_file_aio_write, fs/hpfs/file...
.aio_write = generic_file_aio_write, fs/jffs2/fil...
.aio_write = generic_file_aio_write, fs/jfs/file.c:
.aio_write = generic_file_aio_write, fs/minix/fil...
.aio_write = generic_file_aio_write, fs/nilfs2/fi...
.aio_write = generic_file_aio_write, fs/omfs/file...
.aio_write = generic_file_aio_write, fs/ramfs/fil...
.aio_write = generic_file_aio_write, fs/ramfs/fil...
.aio_write = generic_file_aio_write, fs/reiserfs/...
.aio_write = generic_file_aio_write, fs/sysv/file...
.aio_write = generic_file_aio_write, fs/ufs/file.c:
-独自の非同期 write 関数を使用するファイルシステム
.aio_write = afs_file_write, fs/afs/file.c:
.aio_write = bad_file_aio_write, fs/bad_inode...
.aio_write = blkdev_aio_write, fs/block_dev...
.aio_write = cifs_file_aio_write, fs/cifs/cifs...
.aio_write = ext4_file_write, fs/ext4/file...
.aio_write = fuse_dev_write, fs/fuse/dev.c:
.aio_write = fuse_file_aio_write, fs/fuse/file...
.aio_write = gfs2_file_aio_write, fs/gfs2/file...
.aio_write = nfs_file_write, fs/nfs/file.c:
.aio_write = ntfs_file_aio_write, fs/ntfs/file...
.aio_write = ocfs2_file_aio_write, fs/ocfs2/fil...
.aio_write = pipe_write, fs/pipe.c:
.aio_write = smb_file_aio_write, fs/smbfs/fil...
.aio_write = ubifs_aio_write, fs/ubifs/fil...
.aio_write = udf_file_aio_write, fs/udf/file.c:
.aio_write = xfs_file_aio_write, fs/xfs/linux...
*実装 [#v49bb27c]
ssize_t do_sync_write(struct file *filp, const char __us...
{
struct iovec iov = { .iov_base = (void __user *)buf, .i...
struct kiocb kiocb;
ssize_t ret;
-
--[[linux-2.6.33/iovec]]
-
--[[linux-2.6.33/kiocb]]
init_sync_kiocb(&kiocb, filp);
kiocb.ki_pos = *ppos;
kiocb.ki_left = len;
-
--[[linux-2.6.33/init_sync_kiocb()]]
for (;;) {
ret = filp->f_op->aio_write(&kiocb, &iov, 1, kiocb.ki_...
if (ret != -EIOCBRETRY)
break;
wait_on_retry_sync_kiocb(&kiocb);
-filp->f_op は struct file_operations 型
--[[linux-2.6.33/file_operations]]
-
--[[linux-2.6.33/wait_on_retry_sync_kiocb()]]
}
if (-EIOCBQUEUED == ret)
ret = wait_on_sync_kiocb(&kiocb);
*ppos = kiocb.ki_pos;
-
--[[linux-2.6.33/wait_on_sync_kiocb()]]
return ret;
}
EXPORT_SYMBOL(do_sync_write);
-ライセンスに関係なくシンボルを公開する。
--[[linux-2.6.33/EXPORT_SYMBOL()]]
*コメント [#r39d8e85]
ページ名: