| .. | .. |
|---|
| 96 | 96 | { |
|---|
| 97 | 97 | struct TCP_Server_Info *server = tcon->ses->server; |
|---|
| 98 | 98 | char *sharename; |
|---|
| 99 | + struct cifs_fscache_super_auxdata auxdata; |
|---|
| 99 | 100 | |
|---|
| 100 | 101 | sharename = extract_sharename(tcon->treeName); |
|---|
| 101 | 102 | if (IS_ERR(sharename)) { |
|---|
| .. | .. |
|---|
| 104 | 105 | return; |
|---|
| 105 | 106 | } |
|---|
| 106 | 107 | |
|---|
| 108 | + memset(&auxdata, 0, sizeof(auxdata)); |
|---|
| 109 | + auxdata.resource_id = tcon->resource_id; |
|---|
| 110 | + auxdata.vol_create_time = tcon->vol_create_time; |
|---|
| 111 | + auxdata.vol_serial_number = tcon->vol_serial_number; |
|---|
| 112 | + |
|---|
| 107 | 113 | tcon->fscache = |
|---|
| 108 | 114 | fscache_acquire_cookie(server->fscache, |
|---|
| 109 | 115 | &cifs_fscache_super_index_def, |
|---|
| 110 | 116 | sharename, strlen(sharename), |
|---|
| 111 | | - &tcon->resource_id, sizeof(tcon->resource_id), |
|---|
| 117 | + &auxdata, sizeof(auxdata), |
|---|
| 112 | 118 | tcon, 0, true); |
|---|
| 113 | 119 | kfree(sharename); |
|---|
| 114 | 120 | cifs_dbg(FYI, "%s: (0x%p/0x%p)\n", |
|---|
| .. | .. |
|---|
| 117 | 123 | |
|---|
| 118 | 124 | void cifs_fscache_release_super_cookie(struct cifs_tcon *tcon) |
|---|
| 119 | 125 | { |
|---|
| 126 | + struct cifs_fscache_super_auxdata auxdata; |
|---|
| 127 | + |
|---|
| 128 | + memset(&auxdata, 0, sizeof(auxdata)); |
|---|
| 129 | + auxdata.resource_id = tcon->resource_id; |
|---|
| 130 | + auxdata.vol_create_time = tcon->vol_create_time; |
|---|
| 131 | + auxdata.vol_serial_number = tcon->vol_serial_number; |
|---|
| 132 | + |
|---|
| 120 | 133 | cifs_dbg(FYI, "%s: (0x%p)\n", __func__, tcon->fscache); |
|---|
| 121 | | - fscache_relinquish_cookie(tcon->fscache, &tcon->resource_id, false); |
|---|
| 134 | + fscache_relinquish_cookie(tcon->fscache, &auxdata, false); |
|---|
| 122 | 135 | tcon->fscache = NULL; |
|---|
| 123 | 136 | } |
|---|
| 124 | 137 | |
|---|