*参照元 [#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]
-
--

**参考 [#z587c6e4]


*実装 [#v49bb27c]
 ssize_t do_sync_write(struct file *filp, const char __user *buf, size_t len, loff_t *ppos)
 {
 	struct iovec iov = { .iov_base = (void __user *)buf, .iov_len = len };
 	struct kiocb kiocb;
 	ssize_t ret;
 
-
--[[linux-2.6.33/iov]]
-
--[[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_pos);
 		if (ret != -EIOCBRETRY)
 			break;
 		wait_on_retry_sync_kiocb(&kiocb);
-
--[[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]



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS