diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-09-21 05:09:22 -0400 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2009-09-21 05:09:22 -0400 |
commit | 7cce2f4cb7f5f641f78c8e3eea4e7b1b96cb71c0 (patch) | |
tree | b064d077928cf224660ab1e1841cdab2c9fd8b08 /fs/cifs/cifsglob.h | |
parent | e055f7e873d900925c222cf2d1ec955af4a9ca90 (diff) | |
parent | ebc79c4f8da0f92efa968e0328f32334a2ce80cf (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into linux-next
Conflicts:
fs/ubifs/super.c
Merge the upstream tree in order to resolve a conflict with the
per-bdi writeback changes from the linux-2.6-block tree.
Diffstat (limited to 'fs/cifs/cifsglob.h')
-rw-r--r-- | fs/cifs/cifsglob.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index 6084d6379c03..6cfc81a32703 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
@@ -351,11 +351,24 @@ struct cifsFileInfo { | |||
351 | bool closePend:1; /* file is marked to close */ | 351 | bool closePend:1; /* file is marked to close */ |
352 | bool invalidHandle:1; /* file closed via session abend */ | 352 | bool invalidHandle:1; /* file closed via session abend */ |
353 | bool messageMode:1; /* for pipes: message vs byte mode */ | 353 | bool messageMode:1; /* for pipes: message vs byte mode */ |
354 | atomic_t wrtPending; /* handle in use - defer close */ | 354 | atomic_t count; /* reference count */ |
355 | struct mutex fh_mutex; /* prevents reopen race after dead ses*/ | 355 | struct mutex fh_mutex; /* prevents reopen race after dead ses*/ |
356 | struct cifs_search_info srch_inf; | 356 | struct cifs_search_info srch_inf; |
357 | }; | 357 | }; |
358 | 358 | ||
359 | /* Take a reference on the file private data */ | ||
360 | static inline void cifsFileInfo_get(struct cifsFileInfo *cifs_file) | ||
361 | { | ||
362 | atomic_inc(&cifs_file->count); | ||
363 | } | ||
364 | |||
365 | /* Release a reference on the file private data */ | ||
366 | static inline void cifsFileInfo_put(struct cifsFileInfo *cifs_file) | ||
367 | { | ||
368 | if (atomic_dec_and_test(&cifs_file->count)) | ||
369 | kfree(cifs_file); | ||
370 | } | ||
371 | |||
359 | /* | 372 | /* |
360 | * One of these for each file inode | 373 | * One of these for each file inode |
361 | */ | 374 | */ |
@@ -656,7 +669,11 @@ GLOBAL_EXTERN rwlock_t cifs_tcp_ses_lock; | |||
656 | */ | 669 | */ |
657 | GLOBAL_EXTERN rwlock_t GlobalSMBSeslock; | 670 | GLOBAL_EXTERN rwlock_t GlobalSMBSeslock; |
658 | 671 | ||
659 | GLOBAL_EXTERN struct list_head GlobalOplock_Q; | 672 | /* Global list of oplocks */ |
673 | GLOBAL_EXTERN struct list_head cifs_oplock_list; | ||
674 | |||
675 | /* Protects the cifs_oplock_list */ | ||
676 | GLOBAL_EXTERN spinlock_t cifs_oplock_lock; | ||
660 | 677 | ||
661 | /* Outstanding dir notify requests */ | 678 | /* Outstanding dir notify requests */ |
662 | GLOBAL_EXTERN struct list_head GlobalDnotifyReqList; | 679 | GLOBAL_EXTERN struct list_head GlobalDnotifyReqList; |