Quels sont les systèmes de fichiers épissage support via le raccordement de Linux (2)?
-
30-09-2019 - |
Question
La page de manuel pour appel système splice
dit que splice
peut échouer et ensemble errno
à EINVAL
si:
système de fichiers cible ne prend pas en charge épissage; aucun des descripteurs se réfère à un tuyau; ou décalage donné pour le dispositif non-seekable
Quels sont les systèmes de fichiers pris en charge épissage?
La solution
Ma réponse initiale a été en partie incorrecte, c'est une réécriture majeure.
Linux 2.6.30.10 et ci-dessous
Linux 2.6.30.10 et plus, retourne splice
EINVAL
lorsque la source ou le système de fichiers cible ne épissage support. Voici les systèmes de fichiers qui font l'épissage de support :
- en mode lecture : ADFS, affs, afs, BFS, btrfs, coda, ecryptfs, EXOFS, ext2, ext3, ext4, graisse, fusible, HPFS, JFFS2, JFS, Minix, nfs, nilfs2, ntfs, ocfs2, omfs, QNX4, ReiserFS, smbfs, sysv, UBIFS, udf, ufs.
- en mode écriture :. EXOFS, ext2, ext3, ext4, JFS, ocfs2, ReiserFS, UBIFS
Détails suivi. Prise en charge de l'épissage à déterminer dans le do_splice_to()
fonction dans le cas « fichier à pipe » et dans le la fonction de do_splice_from()
dans le cas « pipe de fichier ». Il se fait en vérifiant si le struct file_operations
concerné contient .splice_read
ou .splice_write
, respectivement. Afin de produire les listes ci-dessus des systèmes de fichiers, j'ai fs/*/file.c
pour .splice_read
et rassemblés de .splice_write
.
Linux 2.6.31 et au-dessus
A partir de Linux 2.6.31, tous les systèmes de fichiers supportent épissage aussi bien dans les modes de lecture et d'écriture .
Détails suivi. Lorsqu'un système de fichiers n'a pas .splice_read
ou .splice_write
dans son struct file_operations
, une fonction de secours est utilisée: default_file_splice_read
et default_file_splice_write
, respectivement. Voir do_splice_to()
et do_splice_from()
pour les implémentations. Note:. EINVAL
peut encore être renvoyé pour d'autres raisons énumérées dans la documentation
Autres conseils
accordding cette , EXT3 fait. Il semble que vous pourriez être hors de la chance avec tout système de fichiers FUSE.