Lines Matching full:who

42 static int thaw_super_locked(struct super_block *sb, enum freeze_holder who);
1908 static inline int freeze_inc(struct super_block *sb, enum freeze_holder who) in freeze_inc() argument
1910 WARN_ON_ONCE((who & ~FREEZE_FLAGS)); in freeze_inc()
1911 WARN_ON_ONCE(hweight32(who & FREEZE_HOLDERS) > 1); in freeze_inc()
1913 if (who & FREEZE_HOLDER_KERNEL) in freeze_inc()
1915 if (who & FREEZE_HOLDER_USERSPACE) in freeze_inc()
1920 static inline int freeze_dec(struct super_block *sb, enum freeze_holder who) in freeze_dec() argument
1922 WARN_ON_ONCE((who & ~FREEZE_FLAGS)); in freeze_dec()
1923 WARN_ON_ONCE(hweight32(who & FREEZE_HOLDERS) > 1); in freeze_dec()
1925 if ((who & FREEZE_HOLDER_KERNEL) && sb->s_writers.freeze_kcount) in freeze_dec()
1927 if ((who & FREEZE_HOLDER_USERSPACE) && sb->s_writers.freeze_ucount) in freeze_dec()
1932 static inline bool may_freeze(struct super_block *sb, enum freeze_holder who) in may_freeze() argument
1934 WARN_ON_ONCE((who & ~FREEZE_FLAGS)); in may_freeze()
1935 WARN_ON_ONCE(hweight32(who & FREEZE_HOLDERS) > 1); in may_freeze()
1937 if (who & FREEZE_HOLDER_KERNEL) in may_freeze()
1938 return (who & FREEZE_MAY_NEST) || in may_freeze()
1940 if (who & FREEZE_HOLDER_USERSPACE) in may_freeze()
1941 return (who & FREEZE_MAY_NEST) || in may_freeze()
1949 * @who: context that wants to freeze
1955 * @who should be:
1960 * The @who argument distinguishes between the kernel and userspace trying to
2001 int freeze_super(struct super_block *sb, enum freeze_holder who) in freeze_super() argument
2013 if (may_freeze(sb, who)) in freeze_super()
2014 ret = !!WARN_ON_ONCE(freeze_inc(sb, who) == 1); in freeze_super()
2034 WARN_ON_ONCE(freeze_inc(sb, who) > 1); in freeze_super()
2081 WARN_ON_ONCE(freeze_inc(sb, who) > 1); in freeze_super()
2096 static int thaw_super_locked(struct super_block *sb, enum freeze_holder who) in thaw_super_locked() argument
2107 if (freeze_dec(sb, who)) in thaw_super_locked()
2122 freeze_inc(sb, who); in thaw_super_locked()
2143 * @who: context that wants to freeze
2148 * @who should be:
2157 int thaw_super(struct super_block *sb, enum freeze_holder who) in thaw_super() argument
2163 return thaw_super_locked(sb, who); in thaw_super()