Pregunta

La página de manual href="http://linux.die.net/man/2/splice" para la llamada al sistema splice dice que splice puede fallar y poner errno a EINVAL si:

  

sistema de archivos de destino no es compatible con el empalme; ninguno de los descriptores se refiere a una tubería; o desplazamiento dada para el dispositivo no seekable

¿Qué sistemas de archivos de soporte de empalmes?

¿Fue útil?

Solución

Mi respuesta original fue parcialmente incorrecta, esto es una reescritura importante.

Linux 2.6.30.10 y por debajo

En Linux 2.6.30.10 y mayores, devoluciones splice EINVAL cuando el sistema de archivos de origen o destino no lo hace el empalme apoyo. Estos son los sistemas de archivos que hacen de soporte de empalmes

  • en modo de lectura : adfs, AFFS, AFS, BFS, btrfs, coda, ecryptfs, EXOFS, ext2, ext3, ext4, grasas, fusibles, HPFS JFFS2, JFS, Minix, NFS, nilfs2, NTFS, ocfs2, omfs, qnx4, reiserfs, smbfs, sysv, UBIFS, UDF, UFS.
  • en el modo de escritura :. EXOFS, ext2, ext3, ext4, JFS, ocfs2, reiserfs, UBIFS

Detalles seguimiento. Soporte para el empalme en determinado en el do_splice_to() función en el caso "archivo a la tubería" y en el función do_splice_from() en el caso "tubería de archivo". Se realiza comprobando si el struct file_operations relevante contiene .splice_read o .splice_write, respectivamente. Con el fin de producir las listas anteriores de los sistemas de ficheros, no tengo fs/*/file.c grepped para .splice_read y .splice_write .

Linux 2.6.31 y superiores

A partir de Linux 2.6.31, todos los sistemas de archivos soportan empalme tanto en los modos de lectura y escritura .

Detalles seguimiento. Cuando un sistema de archivos no tiene .splice_read o .splice_write en su struct file_operations, se utiliza una función de reserva: default_file_splice_read y default_file_splice_write, respectivamente. Ver do_splice_to() y do_splice_from() para las implementaciones. Nota:. EINVAL todavía puede ser devuelto por otras razones que figuran en la documentación

Otros consejos

accordding a este , EXT3 hace. Parece que podría estar fuera de suerte con cualquier sistema de archivos fusible.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top