Changeset 77533 in vbox for trunk/src/VBox/Additions
- Timestamp:
- Mar 1, 2019 2:49:51 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/linux/sharedfolders/vfsmod.h
r77532 r77533 169 169 /** @} */ 170 170 171 extern void vbsf_handle_drop_chain(struct vbsf_inode_info *pInodeInfo);172 extern struct sf_handle *vbsf_handle_find(struct vbsf_inode_info *pInodeInfo, uint32_t fFlagsSet, uint32_t fFlagsClear);173 extern uint32_t vbsf_handle_release_slow(struct sf_handle *pHandle, struct vbsf_super_info *sf_g, const char *pszCaller);174 extern void vbsf_handle_append(struct vbsf_inode_info *pInodeInfo, struct sf_handle *pHandle);175 176 171 177 172 /** … … 228 223 229 224 225 extern void vbsf_handle_drop_chain(struct vbsf_inode_info *pInodeInfo); 226 extern struct sf_handle *vbsf_handle_find(struct vbsf_inode_info *pInodeInfo, uint32_t fFlagsSet, uint32_t fFlagsClear); 227 extern uint32_t vbsf_handle_release_slow(struct sf_handle *pHandle, struct vbsf_super_info *sf_g, const char *pszCaller); 228 extern void vbsf_handle_append(struct vbsf_inode_info *pInodeInfo, struct sf_handle *pHandle); 229 230 /** 231 * Releases a handle. 232 * 233 * @returns New reference count. 234 * @param pHandle The handle to release. 235 * @param sf_g The info structure for the shared folder associated 236 * with the handle. 237 * @param pszCaller The caller name (for logging failures). 238 */ 239 DECLINLINE(uint32_t) vbsf_handle_release(struct sf_handle *pHandle, struct vbsf_super_info *sf_g, const char *pszCaller) 240 { 241 uint32_t cRefs; 242 243 Assert((pHandle->fFlags & SF_HANDLE_F_MAGIC_MASK) == SF_HANDLE_F_MAGIC); 244 Assert(pHandle->pInodeInfo); 245 Assert(pHandle->pInodeInfo && pHandle->pInodeInfo->u32Magic == SF_INODE_INFO_MAGIC); 246 247 cRefs = ASMAtomicDecU32(&pHandle->cRefs); 248 Assert(cRefs < _64M); 249 if (cRefs) 250 return cRefs; 251 return vbsf_handle_release_slow(pHandle, sf_g, pszCaller); 252 } 253 254 230 255 /** 231 256 * VBox specific information for a regular file. … … 256 281 extern int vbsf_dir_read_all(struct vbsf_super_info *sf_g, struct vbsf_inode_info *sf_i, 257 282 struct vbsf_dir_info *sf_d, SHFLHANDLE handle); 258 259 /**260 * Releases a handle.261 *262 * @returns New reference count.263 * @param pHandle The handle to release.264 * @param sf_g The info structure for the shared folder associated265 * with the handle.266 * @param pszCaller The caller name (for logging failures).267 */268 DECLINLINE(uint32_t) vbsf_handle_release(struct sf_handle *pHandle, struct vbsf_super_info *sf_g, const char *pszCaller)269 {270 uint32_t cRefs;271 272 Assert((pHandle->fFlags & SF_HANDLE_F_MAGIC_MASK) == SF_HANDLE_F_MAGIC);273 Assert(pHandle->pInodeInfo);274 Assert(pHandle->pInodeInfo && pHandle->pInodeInfo->u32Magic == SF_INODE_INFO_MAGIC);275 276 cRefs = ASMAtomicDecU32(&pHandle->cRefs);277 Assert(cRefs < _64M);278 if (cRefs)279 return cRefs;280 return vbsf_handle_release_slow(pHandle, sf_g, pszCaller);281 }282 283 283 284
Note:
See TracChangeset
for help on using the changeset viewer.