cifs: track DeletePending flag in cifsInodeInfo
cifs: track DeletePending flag in cifsInodeInfo The QPathInfo call returns a flag that indicates whether DELETE_ON_CLOSE is set. Track it in the cifsInodeInfo. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
Родитель
dd1db2dedc
Коммит
9a8165fce7
|
@ -309,6 +309,7 @@ cifs_alloc_inode(struct super_block *sb)
|
|||
file data or metadata */
|
||||
cifs_inode->clientCanCacheRead = false;
|
||||
cifs_inode->clientCanCacheAll = false;
|
||||
cifs_inode->delete_pending = false;
|
||||
cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */
|
||||
|
||||
/* Can not set i_flags here - they get immediately overwritten
|
||||
|
|
|
@ -353,6 +353,7 @@ struct cifsInodeInfo {
|
|||
bool clientCanCacheRead:1; /* read oplock */
|
||||
bool clientCanCacheAll:1; /* read and writebehind oplock */
|
||||
bool oplockPending:1;
|
||||
bool delete_pending:1; /* DELETE_ON_CLOSE is set */
|
||||
struct inode vfs_inode;
|
||||
};
|
||||
|
||||
|
|
|
@ -1309,6 +1309,7 @@ OldOpenRetry:
|
|||
cpu_to_le64(le32_to_cpu(pSMBr->EndOfFile));
|
||||
pfile_info->EndOfFile = pfile_info->AllocationSize;
|
||||
pfile_info->NumberOfLinks = cpu_to_le32(1);
|
||||
pfile_info->DeletePending = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1410,6 +1411,7 @@ openRetry:
|
|||
pfile_info->AllocationSize = pSMBr->AllocationSize;
|
||||
pfile_info->EndOfFile = pSMBr->EndOfFile;
|
||||
pfile_info->NumberOfLinks = cpu_to_le32(1);
|
||||
pfile_info->DeletePending = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -506,6 +506,7 @@ int cifs_get_inode_info(struct inode **pinode,
|
|||
inode = *pinode;
|
||||
cifsInfo = CIFS_I(inode);
|
||||
cifsInfo->cifsAttrs = attr;
|
||||
cifsInfo->delete_pending = pfindData->DeletePending ? true : false;
|
||||
cFYI(1, ("Old time %ld", cifsInfo->time));
|
||||
cifsInfo->time = jiffies;
|
||||
cFYI(1, ("New time %ld", cifsInfo->time));
|
||||
|
|
Загрузка…
Ссылка в новой задаче