@@ -11,6 +11,7 @@ use std::sync::atomic::{AtomicU64, Ordering};
11
11
12
12
use vm_memory:: ByteValued ;
13
13
14
+ use super :: super :: linux_errno:: linux_error;
14
15
use super :: bindings;
15
16
use super :: descriptor_utils:: { Reader , Writer } ;
16
17
use super :: filesystem:: {
@@ -82,7 +83,7 @@ impl<F: FileSystem + Sync> Server<F> {
82
83
83
84
if in_header. len > ( MAX_BUFFER_SIZE + BUFFER_HEADER_SIZE ) {
84
85
return reply_error (
85
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
86
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
86
87
in_header. unique ,
87
88
w,
88
89
) ;
@@ -143,7 +144,7 @@ impl<F: FileSystem + Sync> Server<F> {
143
144
self . removemapping ( in_header, r, w, shm. host_addr , shm. size as u64 )
144
145
}
145
146
_ => reply_error (
146
- io:: Error :: from_raw_os_error ( libc:: ENOSYS ) ,
147
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOSYS ) ) ,
147
148
in_header. unique ,
148
149
w,
149
150
) ,
@@ -511,7 +512,7 @@ impl<F: FileSystem + Sync> Server<F> {
511
512
512
513
if size > MAX_BUFFER_SIZE {
513
514
return reply_error (
514
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
515
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
515
516
in_header. unique ,
516
517
w,
517
518
) ;
@@ -565,7 +566,7 @@ impl<F: FileSystem + Sync> Server<F> {
565
566
566
567
if size > MAX_BUFFER_SIZE {
567
568
return reply_error (
568
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
569
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
569
570
in_header. unique ,
570
571
w,
571
572
) ;
@@ -713,7 +714,7 @@ impl<F: FileSystem + Sync> Server<F> {
713
714
714
715
if size > MAX_BUFFER_SIZE {
715
716
return reply_error (
716
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
717
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
717
718
in_header. unique ,
718
719
w,
719
720
) ;
@@ -743,7 +744,7 @@ impl<F: FileSystem + Sync> Server<F> {
743
744
744
745
if size > MAX_BUFFER_SIZE {
745
746
return reply_error (
746
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
747
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
747
748
in_header. unique ,
748
749
w,
749
750
) ;
@@ -819,7 +820,7 @@ impl<F: FileSystem + Sync> Server<F> {
819
820
if major < KERNEL_VERSION {
820
821
error ! ( "Unsupported fuse protocol version: {}.{}" , major, minor) ;
821
822
return reply_error (
822
- io:: Error :: from_raw_os_error ( libc:: EPROTO ) ,
823
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: EPROTO ) ) ,
823
824
in_header. unique ,
824
825
w,
825
826
) ;
@@ -842,7 +843,7 @@ impl<F: FileSystem + Sync> Server<F> {
842
843
major, minor
843
844
) ;
844
845
return reply_error (
845
- io:: Error :: from_raw_os_error ( libc:: EPROTO ) ,
846
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: EPROTO ) ) ,
846
847
in_header. unique ,
847
848
w,
848
849
) ;
@@ -929,7 +930,7 @@ impl<F: FileSystem + Sync> Server<F> {
929
930
930
931
if size > MAX_BUFFER_SIZE {
931
932
return reply_error (
932
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
933
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
933
934
in_header. unique ,
934
935
w,
935
936
) ;
@@ -938,7 +939,7 @@ impl<F: FileSystem + Sync> Server<F> {
938
939
let available_bytes = w. available_bytes ( ) ;
939
940
if available_bytes < size as usize {
940
941
return reply_error (
941
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
942
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
942
943
in_header. unique ,
943
944
w,
944
945
) ;
@@ -1187,14 +1188,14 @@ impl<F: FileSystem + Sync> Server<F> {
1187
1188
if let Some ( size) = ( count as usize ) . checked_mul ( size_of :: < ForgetOne > ( ) ) {
1188
1189
if size > MAX_BUFFER_SIZE as usize {
1189
1190
return reply_error (
1190
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
1191
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
1191
1192
in_header. unique ,
1192
1193
w,
1193
1194
) ;
1194
1195
}
1195
1196
} else {
1196
1197
return reply_error (
1197
- io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ,
1198
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ,
1198
1199
in_header. unique ,
1199
1200
w,
1200
1201
) ;
@@ -1338,14 +1339,14 @@ impl<F: FileSystem + Sync> Server<F> {
1338
1339
if let Some ( size) = ( count as usize ) . checked_mul ( size_of :: < RemovemappingOne > ( ) ) {
1339
1340
if size > MAX_BUFFER_SIZE as usize {
1340
1341
return reply_error (
1341
- io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ,
1342
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: ENOMEM ) ) ,
1342
1343
in_header. unique ,
1343
1344
w,
1344
1345
) ;
1345
1346
}
1346
1347
} else {
1347
1348
return reply_error (
1348
- io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ,
1349
+ linux_error ( io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ,
1349
1350
in_header. unique ,
1350
1351
w,
1351
1352
) ;
@@ -1433,24 +1434,24 @@ fn add_dirent(
1433
1434
entry : Option < Entry > ,
1434
1435
) -> io:: Result < usize > {
1435
1436
if d. name . len ( ) > u32:: MAX as usize {
1436
- return Err ( io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ;
1437
+ return Err ( linux_error ( io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ) ;
1437
1438
}
1438
1439
1439
1440
let dirent_len = size_of :: < Dirent > ( )
1440
1441
. checked_add ( d. name . len ( ) )
1441
- . ok_or_else ( || io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ?;
1442
+ . ok_or_else ( || linux_error ( io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ) ?;
1442
1443
1443
1444
// Directory entries must be padded to 8-byte alignment. If adding 7 causes
1444
1445
// an overflow then this dirent cannot be properly padded.
1445
1446
let padded_dirent_len = dirent_len
1446
1447
. checked_add ( 7 )
1447
1448
. map ( |l| l & !7 )
1448
- . ok_or_else ( || io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ?;
1449
+ . ok_or_else ( || linux_error ( io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ) ?;
1449
1450
1450
1451
let total_len = if entry. is_some ( ) {
1451
1452
padded_dirent_len
1452
1453
. checked_add ( size_of :: < EntryOut > ( ) )
1453
- . ok_or_else ( || io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ?
1454
+ . ok_or_else ( || linux_error ( io:: Error :: from_raw_os_error ( libc:: EOVERFLOW ) ) ) ?
1454
1455
} else {
1455
1456
padded_dirent_len
1456
1457
} ;
0 commit comments