Re: [PATCH 2/3] open_by_handle: add -s option to sleep and keep files open by handle

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 29, 2018 at 6:30 AM, Eryu Guan <guaneryu@xxxxxxxxx> wrote:
> On Sun, Mar 25, 2018 at 05:53:10PM +0300, Amir Goldstein wrote:
>> This feature is needed for tests that need to open file by handle and
>> then perform operations while that file is open. This will be used by
>> an overlay test to keep disconnected dentries in dcache.
>>
>> Usage: open_by_handle -s <test_dir>
>>
>> On success, the program will run until it gets a terminating signal.
>>
>> Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx>
>> ---
>>  src/open_by_handle.c | 28 ++++++++++++++++++++--------
>>  1 file changed, 20 insertions(+), 8 deletions(-)
>>
>> diff --git a/src/open_by_handle.c b/src/open_by_handle.c
>> index d3beb78..e4bd29b 100644
>> --- a/src/open_by_handle.c
>> +++ b/src/open_by_handle.c
>> @@ -27,7 +27,7 @@
>>
>>  /*
>>
>> -usage: open_by_handle [-cludmrwapknh] [<-i|-o> <handles_file>] <test_dir> [num_files]
>> +usage: open_by_handle [-cludmrwapknhs] [<-i|-o> <handles_file>] <test_dir> [num_files]
>>
>>  Examples:
>>
>> @@ -48,9 +48,9 @@ Examples:
>>     open_by_handle -p -o <handles_file> <test_dir> [N]
>>
>>  4. Read file handles from file and open files by handle without
>> -   dropping caches beforehand:
>> +   dropping caches beforehand. Sleep afterhand to keep files open:
>>
>> -   open_by_handle -np -i <handles_file> <test_dir> [N]
>> +   open_by_handle -nps -i <handles_file> <test_dir> [N]
>>
>>  5. Get file handles for existing test set, write data to files,
>>     drop caches, open all files by handle, read and verify written
>> @@ -112,7 +112,7 @@ struct handle {
>>
>>  void usage(void)
>>  {
>> -     fprintf(stderr, "usage: open_by_handle [-cludmrwapknh] [<-i|-o> <handles_file>] <test_dir> [num_files]\n");
>> +     fprintf(stderr, "usage: open_by_handle [-cludmrwapknhs] [<-i|-o> <handles_file>] <test_dir> [num_files]\n");
>>       fprintf(stderr, "\n");
>>       fprintf(stderr, "open_by_handle -c <test_dir> [N] - create N test files under test_dir, try to get file handles and exit\n");
>>       fprintf(stderr, "open_by_handle    <test_dir> [N] - get file handles of test files, drop caches and try to open by handle\n");
>> @@ -128,6 +128,7 @@ void usage(void)
>>       fprintf(stderr, "open_by_handle -p <test_dir>     - create/delete and try to open by handle also test_dir itself\n");
>>       fprintf(stderr, "open_by_handle -i <handles_file> <test_dir> [N] - read test files handles from file and try to open by handle\n");
>>       fprintf(stderr, "open_by_handle -o <handles_file> <test_dir> [N] - get file handles of test files and write handles to file\n");
>> +     fprintf(stderr, "open_by_handle -s <test_dir> [N] - wait in sleep loop after opening files by handle to keep them open\n");
>>       exit(EXIT_FAILURE);
>>  }
>>
>> @@ -148,12 +149,12 @@ int main(int argc, char **argv)
>>       int     numfiles = 1;
>>       int     create = 0, delete = 0, nlink = 1, move = 0;
>>       int     rd = 0, wr = 0, wrafter = 0, parent = 0;
>> -     int     keepopen = 0, drop_caches = 1;
>> +     int     keepopen = 0, drop_caches = 1, sleep_loop = 0;
>>
>>       if (argc < 2)
>>               usage();
>>
>> -     while ((c = getopt(argc, argv, "cludmrwapknhi:o:")) != -1) {
>> +     while ((c = getopt(argc, argv, "cludmrwapknhi:o:s")) != -1) {
>>               switch (c) {
>>               case 'c':
>>                       create = 1;
>> @@ -209,6 +210,9 @@ int main(int argc, char **argv)
>>                               return EXIT_FAILURE;
>>                       }
>>                       break;
>> +             case 's':
>> +                     sleep_loop = 1;
>> +                     break;
>>               default:
>>                       fprintf(stderr, "illegal option '%s'\n", argv[optind]);
>>               case 'h':
>> @@ -308,6 +312,7 @@ int main(int argc, char **argv)
>>                               fprintf(stderr, "failed reading file handle #%d from '%s'\n", i, infile);
>>                               return EXIT_FAILURE;
>>                       }
>> +                     continue;
>
> With this 'continue', it seems we can't keep file open when reading file
> handles from a file?

It's a leftover - I was thinking to reuse the meaning of -k -i for
this functionality
but decided to go with a new flag.

With fix in v2.

Thanks,
Amir.
--
To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux