forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-10-16 50a212ec906f7524620675f0c57357691c26c81f
kernel/fs/cifs/fscache.c
....@@ -96,6 +96,7 @@
9696 {
9797 struct TCP_Server_Info *server = tcon->ses->server;
9898 char *sharename;
99
+ struct cifs_fscache_super_auxdata auxdata;
99100
100101 sharename = extract_sharename(tcon->treeName);
101102 if (IS_ERR(sharename)) {
....@@ -104,11 +105,16 @@
104105 return;
105106 }
106107
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
+
107113 tcon->fscache =
108114 fscache_acquire_cookie(server->fscache,
109115 &cifs_fscache_super_index_def,
110116 sharename, strlen(sharename),
111
- &tcon->resource_id, sizeof(tcon->resource_id),
117
+ &auxdata, sizeof(auxdata),
112118 tcon, 0, true);
113119 kfree(sharename);
114120 cifs_dbg(FYI, "%s: (0x%p/0x%p)\n",
....@@ -117,8 +123,15 @@
117123
118124 void cifs_fscache_release_super_cookie(struct cifs_tcon *tcon)
119125 {
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
+
120133 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);
122135 tcon->fscache = NULL;
123136 }
124137