fix f_count description in Documentation/filesystems/files.txt
Documentation/filesystems/files.txt was not updated when f_count became an atomic_long_t. atomic_long_inc_not_zero() is now used instead of atomic_inc_not_zero() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
1239f26c05
commit
fd659fd627
1 changed files with 3 additions and 3 deletions
|
@ -76,13 +76,13 @@ the fdtable structure -
|
||||||
5. Handling of the file structures is special. Since the look-up
|
5. Handling of the file structures is special. Since the look-up
|
||||||
of the fd (fget()/fget_light()) are lock-free, it is possible
|
of the fd (fget()/fget_light()) are lock-free, it is possible
|
||||||
that look-up may race with the last put() operation on the
|
that look-up may race with the last put() operation on the
|
||||||
file structure. This is avoided using atomic_inc_not_zero()
|
file structure. This is avoided using atomic_long_inc_not_zero()
|
||||||
on ->f_count :
|
on ->f_count :
|
||||||
|
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
file = fcheck_files(files, fd);
|
file = fcheck_files(files, fd);
|
||||||
if (file) {
|
if (file) {
|
||||||
if (atomic_inc_not_zero(&file->f_count))
|
if (atomic_long_inc_not_zero(&file->f_count))
|
||||||
*fput_needed = 1;
|
*fput_needed = 1;
|
||||||
else
|
else
|
||||||
/* Didn't get the reference, someone's freed */
|
/* Didn't get the reference, someone's freed */
|
||||||
|
@ -92,7 +92,7 @@ the fdtable structure -
|
||||||
....
|
....
|
||||||
return file;
|
return file;
|
||||||
|
|
||||||
atomic_inc_not_zero() detects if refcounts is already zero or
|
atomic_long_inc_not_zero() detects if refcounts is already zero or
|
||||||
goes to zero during increment. If it does, we fail
|
goes to zero during increment. If it does, we fail
|
||||||
fget()/fget_light().
|
fget()/fget_light().
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue