From: Harsh P. B. <ha...@li...> - 2011-02-17 04:28:04
|
The functional tests for utime checks if utime updates the modification and access time to current time, however V9FS, similar to NFS, by default uses the server's localtime if client doesnt specify a new time. The current implentation does not run the test if the underlying filesystem is NFS. A similar check for V9FS is also required, hence this patch. Signed-off-by: Harsh Prateek Bora <ha...@li...> --- include/test.h | 1 + lib/tst_is_cwd.c | 10 ++++++++++ testcases/kernel/syscalls/utime/utime01.c | 8 ++++++++ testcases/kernel/syscalls/utime/utime02.c | 8 ++++++++ testcases/kernel/syscalls/utime/utime03.c | 8 ++++++++ 5 files changed, 35 insertions(+), 0 deletions(-) diff --git a/include/test.h b/include/test.h index 019bc59..39bad72 100644 --- a/include/test.h +++ b/include/test.h @@ -214,6 +214,7 @@ int tst_kvercmp(int r1, int r2, int r3); /* lib/tst_is_cwd.c */ int tst_is_cwd_nfs(void); +int tst_is_cwd_v9fs(void); int tst_is_cwd_tmpfs(void); int tst_is_cwd_ramfs(void); diff --git a/lib/tst_is_cwd.c b/lib/tst_is_cwd.c index 775d1f3..f06f1db 100644 --- a/lib/tst_is_cwd.c +++ b/lib/tst_is_cwd.c @@ -31,6 +31,16 @@ int tst_is_cwd_nfs(void) return sf.f_type == NFS_MAGIC ? 1 : 0; } +#define V9FS_MAGIC 0x01021997 /* kernel-source/include/linux/magic.h */ +int tst_is_cwd_v9fs(void) +{ + struct statfs sf; + statfs(".", &sf); + + /* Verify that the file is not on a nfs filesystem */ + return sf.f_type == V9FS_MAGIC ? 1 : 0; +} + #define RAMFS_MAGIC 0x858458f6 int tst_is_cwd_ramfs(void) { diff --git a/testcases/kernel/syscalls/utime/utime01.c b/testcases/kernel/syscalls/utime/utime01.c index c917afa..f635ae6 100644 --- a/testcases/kernel/syscalls/utime/utime01.c +++ b/testcases/kernel/syscalls/utime/utime01.c @@ -120,6 +120,14 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + /* + * check if the current filesystem is v9fs + */ + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); diff --git a/testcases/kernel/syscalls/utime/utime02.c b/testcases/kernel/syscalls/utime/utime02.c index 8928a78..900ac89 100644 --- a/testcases/kernel/syscalls/utime/utime02.c +++ b/testcases/kernel/syscalls/utime/utime02.c @@ -125,6 +125,14 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + /* + * check if the current filesystem is v9fs + */ + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); diff --git a/testcases/kernel/syscalls/utime/utime03.c b/testcases/kernel/syscalls/utime/utime03.c index 23402b7..707eab4 100644 --- a/testcases/kernel/syscalls/utime/utime03.c +++ b/testcases/kernel/syscalls/utime/utime03.c @@ -136,6 +136,14 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + /* + * check if the current filesystem is v9fs + */ + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); -- 1.7.1.1 |
From: Cyril H. <ch...@su...> - 2011-02-24 15:57:28
|
Hi! > +#define V9FS_MAGIC 0x01021997 /* kernel-source/include/linux/magic.h */ > +int tst_is_cwd_v9fs(void) > +{ > + struct statfs sf; > + statfs(".", &sf); > + > + /* Verify that the file is not on a nfs filesystem */ > + return sf.f_type == V9FS_MAGIC ? 1 : 0; > +} The "? 1 : 0" redundant here. > #define RAMFS_MAGIC 0x858458f6 > int tst_is_cwd_ramfs(void) > { > diff --git a/testcases/kernel/syscalls/utime/utime01.c b/testcases/kernel/syscalls/utime/utime01.c > index c917afa..f635ae6 100644 > --- a/testcases/kernel/syscalls/utime/utime01.c > +++ b/testcases/kernel/syscalls/utime/utime01.c > @@ -120,6 +120,14 @@ int main(int ac, char **av) > "Cannot do utime on a file located on an NFS filesystem"); > } > > + /* > + * check if the current filesystem is v9fs > + */ > + if (tst_is_cwd_v9fs()) { > + tst_brkm(TCONF, cleanup, > + "Cannot do utime on a file located on an 9P filesystem"); > + } > + > /* set the expected errnos... */ > TEST_EXP_ENOS(exp_enos); The comment here is redundant too :). The function name tst_is_cwd_v9fs is decriptive enough. -- Cyril Hrubis ch...@su... |
From: Harsh P. B. <ha...@li...> - 2011-02-24 16:42:46
|
The functional tests for utime checks if utime updates the modification and access time to current time, however V9FS, similar to NFS, by default uses the server's localtime if client doesnt specify a new time. The current implentation does not run the test if the underlying filesystem is NFS. A similar check for V9FS is also required, hence this patch. Signed-off-by: Harsh Prateek Bora <ha...@li...> --- include/test.h | 1 + lib/tst_is_cwd.c | 12 +++++++++++- testcases/kernel/syscalls/utime/utime01.c | 7 ++++++- testcases/kernel/syscalls/utime/utime02.c | 7 ++++++- testcases/kernel/syscalls/utime/utime03.c | 7 ++++++- 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/include/test.h b/include/test.h index 019bc59..39bad72 100644 --- a/include/test.h +++ b/include/test.h @@ -214,6 +214,7 @@ int tst_kvercmp(int r1, int r2, int r3); /* lib/tst_is_cwd.c */ int tst_is_cwd_nfs(void); +int tst_is_cwd_v9fs(void); int tst_is_cwd_tmpfs(void); int tst_is_cwd_ramfs(void); diff --git a/lib/tst_is_cwd.c b/lib/tst_is_cwd.c index 775d1f3..8c169dd 100644 --- a/lib/tst_is_cwd.c +++ b/lib/tst_is_cwd.c @@ -31,6 +31,16 @@ int tst_is_cwd_nfs(void) return sf.f_type == NFS_MAGIC ? 1 : 0; } +#define V9FS_MAGIC 0x01021997 /* kernel-source/include/linux/magic.h */ +int tst_is_cwd_v9fs(void) +{ + struct statfs sf; + statfs(".", &sf); + + /* Verify that the file is not on a nfs filesystem */ + return (sf.f_type == V9FS_MAGIC); +} + #define RAMFS_MAGIC 0x858458f6 int tst_is_cwd_ramfs(void) { diff --git a/testcases/kernel/syscalls/utime/utime01.c b/testcases/kernel/syscalls/utime/utime01.c index c917afa..a15440c 100644 --- a/testcases/kernel/syscalls/utime/utime01.c +++ b/testcases/kernel/syscalls/utime/utime01.c @@ -120,6 +120,11 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); diff --git a/testcases/kernel/syscalls/utime/utime02.c b/testcases/kernel/syscalls/utime/utime02.c index 8928a78..f0558a8 100644 --- a/testcases/kernel/syscalls/utime/utime02.c +++ b/testcases/kernel/syscalls/utime/utime02.c @@ -125,6 +125,11 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); diff --git a/testcases/kernel/syscalls/utime/utime03.c b/testcases/kernel/syscalls/utime/utime03.c index 23402b7..4f70d2d 100644 --- a/testcases/kernel/syscalls/utime/utime03.c +++ b/testcases/kernel/syscalls/utime/utime03.c @@ -136,6 +136,11 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); -- 1.7.1.1 |
From: Shubham G. <sh...@li...> - 2011-02-24 17:57:45
|
Hi Harsh/Cyril, The below changes make the files inconsistent WRT other function definitions and calls:- 1) Other functions in '/lib/tst_is_cwd.c' still use '? 1 : 0'. Yes this is redundant but if we remove this from the newly added function, I believe we should sync other functions too by removing '? 1 : 0'. 2) Keeping the comments in utime0*.c files does not harm us, i think... The idea is to maintain coherency here. @Harsh - One more question, did u tried testing this patch on a v9fs mounted FS? Thx, Shubham On Thursday 24 February 2011 10:12 PM, Harsh Prateek Bora wrote: > The functional tests for utime checks if utime updates the > modification and access time to current time, however V9FS, > similar to NFS, by default uses the server's localtime if > client doesnt specify a new time. The current implentation > does not run the test if the underlying filesystem is NFS. > A similar check for V9FS is also required, hence this patch. > > Signed-off-by: Harsh Prateek Bora<ha...@li...> > --- > include/test.h | 1 + > lib/tst_is_cwd.c | 12 +++++++++++- > testcases/kernel/syscalls/utime/utime01.c | 7 ++++++- > testcases/kernel/syscalls/utime/utime02.c | 7 ++++++- > testcases/kernel/syscalls/utime/utime03.c | 7 ++++++- > 5 files changed, 30 insertions(+), 4 deletions(-) > > diff --git a/include/test.h b/include/test.h > index 019bc59..39bad72 100644 > --- a/include/test.h > +++ b/include/test.h > @@ -214,6 +214,7 @@ int tst_kvercmp(int r1, int r2, int r3); > > /* lib/tst_is_cwd.c */ > int tst_is_cwd_nfs(void); > +int tst_is_cwd_v9fs(void); > int tst_is_cwd_tmpfs(void); > int tst_is_cwd_ramfs(void); > > diff --git a/lib/tst_is_cwd.c b/lib/tst_is_cwd.c > index 775d1f3..8c169dd 100644 > --- a/lib/tst_is_cwd.c > +++ b/lib/tst_is_cwd.c > @@ -31,6 +31,16 @@ int tst_is_cwd_nfs(void) > return sf.f_type == NFS_MAGIC ? 1 : 0; > } > > +#define V9FS_MAGIC 0x01021997 /* kernel-source/include/linux/magic.h */ > +int tst_is_cwd_v9fs(void) > +{ > + struct statfs sf; > + statfs(".",&sf); > + > + /* Verify that the file is not on a nfs filesystem */ > + return (sf.f_type == V9FS_MAGIC); > +} > + > #define RAMFS_MAGIC 0x858458f6 > int tst_is_cwd_ramfs(void) > { > > diff --git a/testcases/kernel/syscalls/utime/utime01.c b/testcases/kernel/syscalls/utime/utime01.c > index c917afa..a15440c 100644 > --- a/testcases/kernel/syscalls/utime/utime01.c > +++ b/testcases/kernel/syscalls/utime/utime01.c > @@ -120,6 +120,11 @@ int main(int ac, char **av) > "Cannot do utime on a file located on an NFS filesystem"); > } > > + if (tst_is_cwd_v9fs()) { > + tst_brkm(TCONF, cleanup, > + "Cannot do utime on a file located on an 9P filesystem"); > + } > + > /* set the expected errnos... */ > TEST_EXP_ENOS(exp_enos); > > > diff --git a/testcases/kernel/syscalls/utime/utime02.c b/testcases/kernel/syscalls/utime/utime02.c > index 8928a78..f0558a8 100644 > --- a/testcases/kernel/syscalls/utime/utime02.c > +++ b/testcases/kernel/syscalls/utime/utime02.c > @@ -125,6 +125,11 @@ int main(int ac, char **av) > "Cannot do utime on a file located on an NFS filesystem"); > } > > + if (tst_is_cwd_v9fs()) { > + tst_brkm(TCONF, cleanup, > + "Cannot do utime on a file located on an 9P filesystem"); > + } > + > /* set the expected errnos... */ > TEST_EXP_ENOS(exp_enos); > > diff --git a/testcases/kernel/syscalls/utime/utime03.c b/testcases/kernel/syscalls/utime/utime03.c > index 23402b7..4f70d2d 100644 > --- a/testcases/kernel/syscalls/utime/utime03.c > +++ b/testcases/kernel/syscalls/utime/utime03.c > @@ -136,6 +136,11 @@ int main(int ac, char **av) > "Cannot do utime on a file located on an NFS filesystem"); > } > > + if (tst_is_cwd_v9fs()) { > + tst_brkm(TCONF, cleanup, > + "Cannot do utime on a file located on an 9P filesystem"); > + } > + > /* set the expected errnos... */ > TEST_EXP_ENOS(exp_enos); > |
From: Cyril H. <ch...@su...> - 2011-02-24 18:00:56
|
Hi! > The below changes make the files inconsistent WRT other function definitions and calls:- > > 1) Other functions in '/lib/tst_is_cwd.c' still use '? 1 : 0'. Yes this is redundant but if we remove this from the newly added function, I believe we should sync other functions too > by removing '? 1 : 0'. Allready fixed. > 2) Keeping the comments in utime0*.c files does not harm us, i think... See doc/style-guide.txt. -- Cyril Hrubis ch...@su... |
From: Garrett C. <yan...@gm...> - 2011-02-24 18:32:13
|
On Thu, Feb 24, 2011 at 9:57 AM, Shubham Goyal <sh...@li...> wrote: > Hi Harsh/Cyril, > > The below changes make the files inconsistent WRT other function definitions and calls:- > > 1) Other functions in '/lib/tst_is_cwd.c' still use '? 1 : 0'. Yes this is redundant but if we remove this from the newly added function, I believe we should sync other functions too > by removing '? 1 : 0'. These APIs should just be simplified to true (non-zero) / false (zero). There's no need for complicating the APIs with 0/1. > 2) Keeping the comments in utime0*.c files does not harm us, i think... > > The idea is to maintain coherency here. Yes, and it also is to simplify life, reduce wasted space on disk, the repo, etc because there are a ton of these comments all over the place because people copied them verbatim from the example template (even though, again... they're just there to handhold someone producing the example). Thanks, -Garrett |
From: Harsh B. <ha...@li...> - 2011-02-24 19:07:18
|
Shubham, Yes, the patch is tested on v9fs. On 02/24/2011 11:27 PM, Shubham Goyal wrote: > Hi Harsh/Cyril, > > The below changes make the files inconsistent WRT other function > definitions and calls:- > > 1) Other functions in '/lib/tst_is_cwd.c' still use '? 1 : 0'. Yes this > is redundant but if we remove this from the newly added function, I > believe we should sync other functions too > by removing '? 1 : 0'. > > 2) Keeping the comments in utime0*.c files does not harm us, i think... > > The idea is to maintain coherency here. > > @Harsh - One more question, did u tried testing this patch on a v9fs > mounted FS? > > > Thx, Shubham > > > On Thursday 24 February 2011 10:12 PM, Harsh Prateek Bora wrote: >> The functional tests for utime checks if utime updates the >> modification and access time to current time, however V9FS, >> similar to NFS, by default uses the server's localtime if >> client doesnt specify a new time. The current implentation >> does not run the test if the underlying filesystem is NFS. >> A similar check for V9FS is also required, hence this patch. >> >> Signed-off-by: Harsh Prateek Bora<ha...@li...> >> --- >> include/test.h | 1 + >> lib/tst_is_cwd.c | 12 +++++++++++- >> testcases/kernel/syscalls/utime/utime01.c | 7 ++++++- >> testcases/kernel/syscalls/utime/utime02.c | 7 ++++++- >> testcases/kernel/syscalls/utime/utime03.c | 7 ++++++- >> 5 files changed, 30 insertions(+), 4 deletions(-) >> >> diff --git a/include/test.h b/include/test.h >> index 019bc59..39bad72 100644 >> --- a/include/test.h >> +++ b/include/test.h >> @@ -214,6 +214,7 @@ int tst_kvercmp(int r1, int r2, int r3); >> >> /* lib/tst_is_cwd.c */ >> int tst_is_cwd_nfs(void); >> +int tst_is_cwd_v9fs(void); >> int tst_is_cwd_tmpfs(void); >> int tst_is_cwd_ramfs(void); >> >> diff --git a/lib/tst_is_cwd.c b/lib/tst_is_cwd.c >> index 775d1f3..8c169dd 100644 >> --- a/lib/tst_is_cwd.c >> +++ b/lib/tst_is_cwd.c >> @@ -31,6 +31,16 @@ int tst_is_cwd_nfs(void) >> return sf.f_type == NFS_MAGIC ? 1 : 0; >> } >> >> +#define V9FS_MAGIC 0x01021997 /* kernel-source/include/linux/magic.h */ >> +int tst_is_cwd_v9fs(void) >> +{ >> + struct statfs sf; >> + statfs(".",&sf); >> + >> + /* Verify that the file is not on a nfs filesystem */ >> + return (sf.f_type == V9FS_MAGIC); >> +} >> + >> #define RAMFS_MAGIC 0x858458f6 >> int tst_is_cwd_ramfs(void) >> { >> >> diff --git a/testcases/kernel/syscalls/utime/utime01.c >> b/testcases/kernel/syscalls/utime/utime01.c >> index c917afa..a15440c 100644 >> --- a/testcases/kernel/syscalls/utime/utime01.c >> +++ b/testcases/kernel/syscalls/utime/utime01.c >> @@ -120,6 +120,11 @@ int main(int ac, char **av) >> "Cannot do utime on a file located on an NFS filesystem"); >> } >> >> + if (tst_is_cwd_v9fs()) { >> + tst_brkm(TCONF, cleanup, >> + "Cannot do utime on a file located on an 9P filesystem"); >> + } >> + >> /* set the expected errnos... */ >> TEST_EXP_ENOS(exp_enos); >> >> >> diff --git a/testcases/kernel/syscalls/utime/utime02.c >> b/testcases/kernel/syscalls/utime/utime02.c >> index 8928a78..f0558a8 100644 >> --- a/testcases/kernel/syscalls/utime/utime02.c >> +++ b/testcases/kernel/syscalls/utime/utime02.c >> @@ -125,6 +125,11 @@ int main(int ac, char **av) >> "Cannot do utime on a file located on an NFS filesystem"); >> } >> >> + if (tst_is_cwd_v9fs()) { >> + tst_brkm(TCONF, cleanup, >> + "Cannot do utime on a file located on an 9P filesystem"); >> + } >> + >> /* set the expected errnos... */ >> TEST_EXP_ENOS(exp_enos); >> >> diff --git a/testcases/kernel/syscalls/utime/utime03.c >> b/testcases/kernel/syscalls/utime/utime03.c >> index 23402b7..4f70d2d 100644 >> --- a/testcases/kernel/syscalls/utime/utime03.c >> +++ b/testcases/kernel/syscalls/utime/utime03.c >> @@ -136,6 +136,11 @@ int main(int ac, char **av) >> "Cannot do utime on a file located on an NFS filesystem"); >> } >> >> + if (tst_is_cwd_v9fs()) { >> + tst_brkm(TCONF, cleanup, >> + "Cannot do utime on a file located on an 9P filesystem"); >> + } >> + >> /* set the expected errnos... */ >> TEST_EXP_ENOS(exp_enos); >> > |
From: Cyril H. <ch...@su...> - 2011-02-24 17:58:49
|
Hi! Commited. -- Cyril Hrubis ch...@su... |
From: Harsh B. <ha...@li...> - 2011-02-24 19:08:08
|
On 02/24/2011 11:49 PM, Cyril Hrubis wrote: > Hi! > > Commited. Thanks ! :) |
From: Harsh P. B. <ha...@li...> - 2011-02-24 17:37:41
|
The functional tests for utime checks if utime updates the modification and access time to current time, however V9FS, similar to NFS, by default uses the server's localtime if client doesnt specify a new time. The current implentation does not run the test if the underlying filesystem is NFS. A similar check for V9FS is also required, hence this patch. Signed-off-by: Harsh Prateek Bora <ha...@li...> --- include/test.h | 1 + lib/tst_is_cwd.c | 12 +++++++++++- testcases/kernel/syscalls/utime/utime01.c | 7 ++++++- testcases/kernel/syscalls/utime/utime02.c | 7 ++++++- testcases/kernel/syscalls/utime/utime03.c | 7 ++++++- 5 files changed, 30 insertions(+), 4 deletions(-) diff --git a/include/test.h b/include/test.h index 019bc59..39bad72 100644 --- a/include/test.h +++ b/include/test.h @@ -214,6 +214,7 @@ int tst_kvercmp(int r1, int r2, int r3); /* lib/tst_is_cwd.c */ int tst_is_cwd_nfs(void); +int tst_is_cwd_v9fs(void); int tst_is_cwd_tmpfs(void); int tst_is_cwd_ramfs(void); diff --git a/lib/tst_is_cwd.c b/lib/tst_is_cwd.c index 775d1f3..8c169dd 100644 --- a/lib/tst_is_cwd.c +++ b/lib/tst_is_cwd.c @@ -31,6 +31,16 @@ int tst_is_cwd_nfs(void) return sf.f_type == NFS_MAGIC ? 1 : 0; } +#define V9FS_MAGIC 0x01021997 /* kernel-source/include/linux/magic.h */ +int tst_is_cwd_v9fs(void) +{ + struct statfs sf; + statfs(".", &sf); + + /* Verify that the file is not on a nfs filesystem */ + return (sf.f_type == V9FS_MAGIC); +} + #define RAMFS_MAGIC 0x858458f6 int tst_is_cwd_ramfs(void) { diff --git a/testcases/kernel/syscalls/utime/utime01.c b/testcases/kernel/syscalls/utime/utime01.c index c917afa..a15440c 100644 --- a/testcases/kernel/syscalls/utime/utime01.c +++ b/testcases/kernel/syscalls/utime/utime01.c @@ -120,6 +120,11 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); diff --git a/testcases/kernel/syscalls/utime/utime02.c b/testcases/kernel/syscalls/utime/utime02.c index 8928a78..f0558a8 100644 --- a/testcases/kernel/syscalls/utime/utime02.c +++ b/testcases/kernel/syscalls/utime/utime02.c @@ -125,6 +125,11 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); diff --git a/testcases/kernel/syscalls/utime/utime03.c b/testcases/kernel/syscalls/utime/utime03.c index 23402b7..4f70d2d 100644 --- a/testcases/kernel/syscalls/utime/utime03.c +++ b/testcases/kernel/syscalls/utime/utime03.c @@ -136,6 +136,11 @@ int main(int ac, char **av) "Cannot do utime on a file located on an NFS filesystem"); } + if (tst_is_cwd_v9fs()) { + tst_brkm(TCONF, cleanup, + "Cannot do utime on a file located on an 9P filesystem"); + } + /* set the expected errnos... */ TEST_EXP_ENOS(exp_enos); -- 1.7.1.1 |