Lines Matching full:who

42 static int thaw_super_locked(struct super_block *sb, enum freeze_holder who,
1900 static inline int freeze_inc(struct super_block *sb, enum freeze_holder who) in freeze_inc() argument
1902 WARN_ON_ONCE((who & ~FREEZE_FLAGS)); in freeze_inc()
1903 WARN_ON_ONCE(hweight32(who & FREEZE_HOLDERS) > 1); in freeze_inc()
1905 if (who & FREEZE_HOLDER_KERNEL) in freeze_inc()
1907 if (who & FREEZE_HOLDER_USERSPACE) in freeze_inc()
1912 static inline int freeze_dec(struct super_block *sb, enum freeze_holder who) in freeze_dec() argument
1914 WARN_ON_ONCE((who & ~FREEZE_FLAGS)); in freeze_dec()
1915 WARN_ON_ONCE(hweight32(who & FREEZE_HOLDERS) > 1); in freeze_dec()
1917 if ((who & FREEZE_HOLDER_KERNEL) && sb->s_writers.freeze_kcount) in freeze_dec()
1919 if ((who & FREEZE_HOLDER_USERSPACE) && sb->s_writers.freeze_ucount) in freeze_dec()
1924 static inline bool may_freeze(struct super_block *sb, enum freeze_holder who, in may_freeze() argument
1929 WARN_ON_ONCE((who & ~FREEZE_FLAGS)); in may_freeze()
1930 WARN_ON_ONCE(hweight32(who & FREEZE_HOLDERS) > 1); in may_freeze()
1932 if (who & FREEZE_EXCL) { in may_freeze()
1933 if (WARN_ON_ONCE(!(who & FREEZE_HOLDER_KERNEL))) in may_freeze()
1935 if (WARN_ON_ONCE(who & ~(FREEZE_EXCL | FREEZE_HOLDER_KERNEL))) in may_freeze()
1952 if (who & FREEZE_HOLDER_KERNEL) in may_freeze()
1953 return (who & FREEZE_MAY_NEST) || in may_freeze()
1955 if (who & FREEZE_HOLDER_USERSPACE) in may_freeze()
1956 return (who & FREEZE_MAY_NEST) || in may_freeze()
1961 static inline bool may_unfreeze(struct super_block *sb, enum freeze_holder who, in may_unfreeze() argument
1966 WARN_ON_ONCE((who & ~FREEZE_FLAGS)); in may_unfreeze()
1967 WARN_ON_ONCE(hweight32(who & FREEZE_HOLDERS) > 1); in may_unfreeze()
1969 if (who & FREEZE_EXCL) { in may_unfreeze()
1970 if (WARN_ON_ONCE(!(who & FREEZE_HOLDER_KERNEL))) in may_unfreeze()
1972 if (WARN_ON_ONCE(who & ~(FREEZE_EXCL | FREEZE_HOLDER_KERNEL))) in may_unfreeze()
1994 if (who & FREEZE_HOLDER_KERNEL) { in may_unfreeze()
2005 if (who & FREEZE_HOLDER_USERSPACE) in may_unfreeze()
2014 * @who: context that wants to freeze
2021 * @who should be:
2026 * The @who argument distinguishes between the kernel and userspace trying to
2067 int freeze_super(struct super_block *sb, enum freeze_holder who, const void *freeze_owner) in freeze_super() argument
2079 if (may_freeze(sb, who, freeze_owner)) in freeze_super()
2080 ret = !!WARN_ON_ONCE(freeze_inc(sb, who) == 1); in freeze_super()
2100 WARN_ON_ONCE(freeze_inc(sb, who) > 1); in freeze_super()
2148 WARN_ON_ONCE(freeze_inc(sb, who) > 1); in freeze_super()
2164 static int thaw_super_locked(struct super_block *sb, enum freeze_holder who, in thaw_super_locked() argument
2172 if (!may_unfreeze(sb, who, freeze_owner)) in thaw_super_locked()
2179 if (freeze_dec(sb, who)) in thaw_super_locked()
2195 freeze_inc(sb, who); in thaw_super_locked()
2217 * @who: context that wants to freeze
2223 * @who should be:
2232 int thaw_super(struct super_block *sb, enum freeze_holder who, in thaw_super() argument
2239 return thaw_super_locked(sb, who, freeze_owner); in thaw_super()