diff --git a/sdcard/sdcard.c b/sdcard/sdcard.c index 8d87ee92d..bff6e67d5 100644 --- a/sdcard/sdcard.c +++ b/sdcard/sdcard.c @@ -28,6 +28,8 @@ #include #include #include +#include +#include #include @@ -1305,6 +1307,7 @@ int main(int argc, char **argv) gid_t gid = 0; int num_threads = DEFAULT_NUM_THREADS; int i; + struct rlimit rlim; for (i = 1; i < argc; i++) { char* arg = argv[i]; @@ -1353,6 +1356,12 @@ int main(int argc, char **argv) return usage(); } + rlim.rlim_cur = 8192; + rlim.rlim_max = 8192; + if (setrlimit(RLIMIT_NOFILE, &rlim)) { + ERROR("Error setting RLIMIT_NOFILE, errno = %d\n", errno); + } + res = run(source_path, dest_path, uid, gid, num_threads); return res < 0 ? 1 : 0; }