J. Bruce Fields
ba3460519e
nfsd4: fix leak of inode reference on delegation failure
...
commit bf7bd3e98b upstream.
This fixes a regression from 68a3396178
"nfsd4: shut down more of delegation earlier".
After that commit, nfs4_set_delegation() failures result in
nfs4_put_delegation being called, but nfs4_put_delegation doesn't free
the nfs4_file that has already been set by alloc_init_deleg().
This can result in an oops on later unmounting the exported filesystem.
Note also delaying the fi_had_conflict check we're able to return a
better error (hence give 4.1 clients a better idea why the delegation
failed; though note CONFLICT isn't an exact match here, as that's
supposed to indicate a current conflict, but all we know here is that
there was one recently).
Reported-by: Toralf Förster <toralf.foerster@gmx.de >
Tested-by: Toralf Förster <toralf.foerster@gmx.de >
Signed-off-by: J. Bruce Fields <bfields@redhat.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2013-10-13 18:14:23 -07:00
..
2013-07-11 10:21:23 -07:00
2013-06-29 12:57:36 +04:00
2013-06-29 12:57:36 +04:00
2013-07-03 09:10:19 -07:00
2013-07-05 18:59:33 +04:00
2013-06-29 12:56:55 +04:00
2013-08-24 12:10:22 -04:00
2013-09-26 17:21:56 -07:00
2013-07-03 16:07:31 -07:00
2013-09-26 17:21:58 -07:00
2013-10-01 09:40:58 -07:00
2013-07-05 18:59:33 +04:00
2013-07-14 11:42:26 -07:00
2013-06-29 12:56:46 +04:00
2013-07-31 12:16:31 -04:00
2013-08-09 10:48:20 -07:00
2013-07-11 10:20:18 -07:00
2013-07-14 17:48:35 +04:00
2013-08-24 12:10:22 -04:00
2013-07-02 09:39:34 -07:00
2013-06-29 12:57:05 +04:00
2013-06-29 12:57:10 +04:00
2013-07-20 22:03:20 -04:00
2013-09-26 17:21:44 -07:00
2013-07-08 13:35:48 +04:00
2013-07-09 10:33:25 -07:00
2013-06-29 12:56:53 +04:00
2013-06-19 14:16:47 +01:00
2013-09-26 17:21:59 -07:00
2013-08-19 09:33:57 +01:00
2013-06-29 12:57:36 +04:00
2013-06-29 12:57:36 +04:00
2013-06-29 12:56:59 +04:00
2013-07-04 11:22:55 -07:00
2013-07-03 16:07:41 -07:00
2013-08-24 12:10:17 -04:00
2013-09-26 17:21:57 -07:00
2013-05-21 23:26:36 -04:00
2013-07-01 08:12:41 -04:00
2013-06-29 12:56:47 +04:00
2013-08-15 17:22:29 -05:00
2013-08-05 15:03:46 -04:00
2013-07-02 09:39:34 -07:00
2013-06-29 12:57:35 +04:00
2013-07-09 10:33:25 -07:00
2013-08-07 20:47:26 -04:00
2013-10-13 18:14:23 -07:00
2013-08-23 09:51:22 -07:00
2013-07-09 10:33:20 -07:00
2013-07-02 09:39:34 -07:00
2013-09-26 17:21:57 -07:00
2013-06-29 12:56:37 +04:00
2013-06-29 12:56:32 +04:00
2013-09-26 17:21:57 -07:00
2013-07-04 10:29:23 -07:00
2013-06-29 12:56:38 +04:00
2013-06-29 12:56:39 +04:00
2013-07-04 19:22:55 +02:00
2013-08-05 17:37:37 +04:00
2013-06-29 12:56:29 +04:00
2013-06-29 12:56:28 +04:00
2013-07-16 10:57:36 -07:00
2013-10-05 07:17:54 -07:00
2013-07-05 12:08:47 -07:00
2013-10-01 09:41:01 -07:00
2013-06-29 12:46:47 +04:00
2013-07-25 10:41:42 -05:00
2013-07-03 16:08:06 -07:00
2013-06-29 12:57:04 +04:00
2013-07-10 18:11:34 -07:00
2013-05-02 10:16:16 -07:00
2013-07-10 18:11:34 -07:00
2013-04-29 15:40:23 -04:00
2013-04-30 17:04:03 -07:00
2013-10-01 09:41:02 -07:00
2013-10-05 07:17:54 -07:00
2013-07-11 13:03:24 -07:00
2013-07-03 16:07:29 -07:00
2013-06-29 12:46:44 +04:00
2013-06-29 12:57:05 +04:00
2013-07-03 16:08:02 -07:00
2013-08-28 18:24:59 -07:00
2013-05-08 10:13:35 -07:00
2013-07-03 17:12:13 -07:00
2013-08-16 08:52:46 -07:00
2013-08-05 18:25:32 +04:00
2013-07-13 13:29:10 +04:00
2013-05-01 17:31:42 -04:00
2013-07-09 10:33:22 -07:00
2013-06-29 12:57:11 +04:00
2013-06-29 12:57:34 +04:00
2013-04-17 13:25:09 +01:00
2013-04-30 17:04:04 -07:00
2013-07-14 17:43:25 +04:00
2013-07-08 13:36:42 +04:00
2013-05-01 17:51:54 -07:00
2013-08-28 18:24:59 -07:00
2013-08-24 12:10:29 -04:00
2013-08-05 18:24:10 +04:00
2013-05-07 20:16:25 -07:00
2013-05-31 15:16:33 -04:00
2013-05-01 17:51:54 -07:00
2013-07-03 16:23:27 +04:00
2013-06-29 12:57:05 +04:00
2013-07-10 17:08:27 -07:00
2013-07-08 13:36:41 +04:00
2013-07-03 09:10:19 -07:00
2013-07-20 04:58:58 +04:00
2013-05-29 12:57:34 -07:00