.. | .. |
---|
236 | 236 | size[0] = 8; /* sizeof __le64 */ |
---|
237 | 237 | data[0] = ptr; |
---|
238 | 238 | |
---|
239 | | - rc = SMB2_set_info_init(tcon, server, |
---|
240 | | - &rqst[num_rqst], COMPOUND_FID, |
---|
241 | | - COMPOUND_FID, current->tgid, |
---|
242 | | - FILE_END_OF_FILE_INFORMATION, |
---|
243 | | - SMB2_O_INFO_FILE, 0, data, size); |
---|
| 239 | + if (cfile) { |
---|
| 240 | + rc = SMB2_set_info_init(tcon, server, |
---|
| 241 | + &rqst[num_rqst], |
---|
| 242 | + cfile->fid.persistent_fid, |
---|
| 243 | + cfile->fid.volatile_fid, |
---|
| 244 | + current->tgid, |
---|
| 245 | + FILE_END_OF_FILE_INFORMATION, |
---|
| 246 | + SMB2_O_INFO_FILE, 0, |
---|
| 247 | + data, size); |
---|
| 248 | + } else { |
---|
| 249 | + rc = SMB2_set_info_init(tcon, server, |
---|
| 250 | + &rqst[num_rqst], |
---|
| 251 | + COMPOUND_FID, |
---|
| 252 | + COMPOUND_FID, |
---|
| 253 | + current->tgid, |
---|
| 254 | + FILE_END_OF_FILE_INFORMATION, |
---|
| 255 | + SMB2_O_INFO_FILE, 0, |
---|
| 256 | + data, size); |
---|
| 257 | + if (!rc) { |
---|
| 258 | + smb2_set_next_command(tcon, &rqst[num_rqst]); |
---|
| 259 | + smb2_set_related(&rqst[num_rqst]); |
---|
| 260 | + } |
---|
| 261 | + } |
---|
244 | 262 | if (rc) |
---|
245 | 263 | goto finished; |
---|
246 | | - smb2_set_next_command(tcon, &rqst[num_rqst]); |
---|
247 | | - smb2_set_related(&rqst[num_rqst++]); |
---|
| 264 | + num_rqst++; |
---|
248 | 265 | trace_smb3_set_eof_enter(xid, ses->Suid, tcon->tid, full_path); |
---|
249 | 266 | break; |
---|
250 | 267 | case SMB2_OP_SET_INFO: |
---|