.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2016, Oracle. All rights reserved. .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ioctl_fideduperange 2 "30 martie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME ioctl_fideduperange \- partajează o parte din datele unui fișier cu un alt fișier .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP /* Definiția lui \fBFIDEDUPERANGE\fPși a constantelor\fB FILE_DEDUPE_* \fP\fB*/\fP \fB#include \fP .PP \fBint ioctl(int \fP\fIsrc_fd\fP\fB, FIDEDUPERANGE, struct file_dedupe_range *\fP\fIarg\fP\fB);\fP .fi .SH DESCRIERE În cazul în care un sistem de fișiere acceptă fișiere care partajează stocarea fizică între mai multe fișiere, această operație \fBioctl\fP(2) poate fi utilizată pentru a face ca o parte din datele din fișierul \fBsrc_fd\fP să apară în fișierul \fBdest_fd\fP prin partajarea stocării subiacente dacă datele din fișiere sunt identice („deduplicare”). Ambele fișiere trebuie să se afle în același sistem de fișiere. Acest lucru reduce consumul de stocare permițând sistemului de fișiere să stocheze o singură copie partajată a datelor. În cazul în care o regiune partajată ar trebui să fie scrisă într\-un fișier, sistemul de fișiere trebuie să se asigure că modificările rămân private pentru fișierul care este scris. Acest comportament este denumit în mod obișnuit „copiere la scriere”. .PP Acest ioctl efectuează operația de „comparare și partajare dacă este identică” pe până la \fIsrc_length\fP octeți din descriptorul de fișier \fIsrc_fd\fP la poziția \fIsrc_offset\fP. Această informație este transmisă într\-o structură de următoarea formă: .PP .in +4n .EX struct file_dedupe_range { ; __u64 src_length; __u16 dest_count; __u16 reserved1; __u32 reserved2; struct file_dedupe_range_info info[0]; }; .EE .in .PP Deduplicarea este atomică în ceea ce privește scrierile simultane, astfel încât nu este nevoie să se facă niciun blocaj pentru a obține o copie deduplicată consistentă. .PP Câmpurile \fIrezerved1\fP și \fIrezerved2\fP trebuie să fie zero. .PP Destinațiile pentru operația de deduplicare sunt transmise în matricea de la sfârșitul structurii. Numărul de destinații este indicat în \fIdest_count\fP, iar informațiile privind destinația sunt transmise sub următoarea formă: .PP .in +4n .EX struct file_dedupe_range_info { __s64 dest_fd; __u64 dest_offset; __u64 bytes_deduped; __s32 status; __u32 reserved; }; .EE .in .PP Fiecare operație de deduplicare vizează \fIsrc_length\fP octeți în descriptorul de fișier \fIdest_fd\fP la poziția \fIdest_offset\fP. Câmpul \fIreserved\fP trebuie să fie zero. În timpul apelului, \fIsrc_fd\fP trebuie să fie deschis pentru citire, iar \fIdest_fd\fP trebuie să fie deschis pentru scriere. Dimensiunea combinată a structurii matricei \fIfile_dedupe_range\fP și a structurii matricei \fIfile_dedupe_range_info\fP nu trebuie să depășească dimensiunea paginii de sistem. Dimensiunea maximă a \fIsrc_length\fP depinde de sistemul de fișiere și este de obicei de 16\~Mio. Această limită va fi impusă în mod silențios de către sistemul de fișiere. Prin convenție, spațiul de stocare utilizat de \fIsrc_fd\fP este plasat în \fIdest_fd\fP, iar conținutul anterior din \fIdest_fd\fP este eliberat. .PP La finalizarea cu succes a acestui ioctl, numărul de octeți deduplicați cu succes este returnat în \fIbytes_deduped\fP și un cod de stare pentru operația de deduplicare este returnat în \fIstatus\fP. În cazul în care nici măcar un singur octet din interval nu corespunde, cererea de deduplicare va fi ignorată, iar \fIstatus\fP va fi stabilit la \fBFILE_DEDUPE_RANGE_DIFFERS\fP. Codul \fIstatus\fP este stabilit la \fBFILE_DEDUPE_RANGE_SAME\fP în caz de succes, un cod de eroare negativ în caz de eroare sau \fBFILE_DEDUPE_RANGE_DIFFERS\fP dacă datele nu se potrivesc. .SH "VALOAREA RETURNATĂ" În caz de eroare, se returnează \-1, iar \fIerrno\fP este configurată pentru a indica eroarea. .SH ERORI\-IEȘIRE Posibilele erori includ (dar nu se limitează la) următoarele: .TP \fBEBADF\fP \fIsrc_fd\fP nu este deschis pentru citire; \fIdest_fd\fP nu este deschis pentru scriere sau este deschis doar pentru scriere de tip „doar\-adăugare”; sau sistemul de fișiere pe care se află \fIsrc_fd\fP nu acceptă deduplicarea. .TP \fBEINVAL\fP Sistemul de fișiere nu acceptă deduplicarea intervalelor de fișiere date. Această eroare poate apărea, de asemenea, dacă oricare dintre descriptorii de fișiere reprezintă un dispozitiv, FIFO sau soclu. În general, sistemele de fișiere pe disc necesită ca argumentele „offset” și „length” să fie aliniate la dimensiunea blocului fundamental. Nici Btrfs și nici XFS nu acceptă suprapunerea intervalelor de deduplicare în același fișier. .TP \fBEISDIR\fP Unul dintre fișiere este un director, iar sistemul de fișiere nu acceptă regiuni partajate în directoare. .TP \fBENOMEM\fP Nucleul nu a reușit să aloce suficientă memorie pentru a efectua operația sau \fIdest_count\fP este atât de mare încât descrierea argumentului de intrare se întinde pe mai mult de o singură pagină de memorie. .TP \fBEOPNOTSUPP\fP Acest lucru poate apărea în cazul în care sistemul de fișiere nu acceptă deduplicarea niciunui descriptor de fișier sau în cazul în care unul dintre descriptorii de fișiere se referă la noduri\-i speciale. .TP \fBEPERM\fP \fIdest_fd\fP este imuabil. .TP \fBETXTBSY\fP Unul dintre fișiere este un fișier swap. Fișierele swap nu pot partaja spațiul de stocare. .TP \fBEXDEV\fP \fIdest_fd\fP și \fIsrc_fd\fP nu se află pe același sistem de fișiere montat. .SH VERSIUNI Unele sisteme de fișiere pot limita cantitatea de date care pot fi deduplicate într\-un singur apel. .SH STANDARDE Linux. .SH ISTORIC Linux 4.5. .PP A fost cunoscută anterior sub numele de \fBBTRFS_IOC_FILE_EXTENT_SAME\fP și a fost privată pentru Btrfs. .SH NOTE Deoarece o operație de copiere la scriere „copy\-on\-write” necesită alocarea de noi spații de stocare, operația \fBfallocate\fP(2) poate să nu partajeze blocurile partajate pentru a garanta că scrierile ulterioare nu vor eșua din cauza lipsei de spațiu pe disc. .SH "CONSULTAȚI ȘI" \fBioctl\fP(2) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .