Domanda

Il href="http://linux.die.net/man/2/splice" pagina man per la chiamata di sistema splice dice che splice potrebbe non riuscire e set errno a EINVAL se:

  

sistema di file di destinazione non supporta splicing; nessuno dei descrittori si riferisce ad un tubo; o compensare espressa dispositivo non seekable

Quali sistemi di file supportano splicing?

È stato utile?

Soluzione

La mia risposta originale è stato parzialmente corretto, questo è un importante riscrittura.

Linux 2.6.30.10 e seguente

In Linux 2.6.30.10 e più anziani, i rendimenti splice EINVAL quando il file system di origine o di destinazione non lo fa splicing supporto. Qui ci sono le filesystem che supportano splicing :

  • in modalità di lettura : ADFS AFFS, AFS, BFS, btrfs, Coda, ecryptfs, EXOFS, ext2, ext3, ext4, grassi, fusibili, HPFS jffs2, JFS, Minix, NFS, nilfs2, ntfs, OCFS2, omfs, qnx4, ReiserFS, smbfs, sysv, ubifs, UDF, UFS.
  • in modalità di scrittura :. EXOFS, ext2, ext3, ext4, jfs, OCFS2, ReiserFS, ubifs

Dettagli follow. Il supporto per splicing nel determinato nel do_splice_to() funzione nel caso "file pipe" e nel funzione do_splice_from() nel caso "pipe al file". E 'fatto controllando se il struct file_operations rilevante contiene .splice_read o .splice_write, rispettivamente. Al fine di produrre gli elenchi di cui sopra di filesystem, ho fs/*/file.c grepped per .splice_read e .splice_write .

Linux 2.6.31 e superiori

A partire da Linux 2.6.31, tutti i filesystem supportano splicing sia in modalità di lettura e scrittura .

Dettagli follow. Quando un file system non ha .splice_read o .splice_write nella sua struct file_operations, una funzione di sicurezza è utilizzato: default_file_splice_read e default_file_splice_write, rispettivamente. Vedere do_splice_to() e do_splice_from() per le implementazioni. Nota:. EINVAL possono ancora essere restituito per altri motivi elencati nella documentazione

Altri suggerimenti

accordding a questo , EXT3 fa. Sembra che si può essere fuori di fortuna con qualsiasi file system FUSE.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top