Lines Matching full:holder
26 * @holder_data: holder of a dax_device: could be filesystem or mapped device
27 * @holder_ops: operations for the inner holder
79 * @holder: filesystem or mapped device inside the dax_device
80 * @ops: operations for the inner holder
83 void *holder, const struct dax_holder_operations *ops) in fs_dax_get_by_bdev() argument
103 else if (holder) { in fs_dax_get_by_bdev()
104 if (!cmpxchg(&dax_dev->holder_data, NULL, holder)) in fs_dax_get_by_bdev()
120 * fs_put_dax() - release holder ownership of a dax_device
122 * @holder: the holder pointer previously passed to fs_dax_get() or
126 * Must only be called by the current holder. Clears holder_ops before
130 void fs_put_dax(struct dax_device *dax_dev, void *holder) in fs_put_dax() argument
132 if (dax_dev && holder) { in fs_put_dax()
144 prev = cmpxchg(&dax_dev->holder_data, holder, NULL); in fs_put_dax()
147 * prev == holder: normal release. in fs_put_dax()
149 * device was removed under a live holder; in fs_put_dax()
151 * prev != holder (non-NULL): fs_put_dax() called by something in fs_put_dax()
152 * that is not the current holder; an API in fs_put_dax()
158 WARN_ON(prev && prev != holder); in fs_put_dax()
165 * fs_dax_get() - get ownership of a devdax via holder/holder_ops
169 * dev_dax (and there is no bdev). The holder makes this exclusive.
172 * @holder: filesystem or mapped device inside the dax_device
173 * @hops: operations for the inner holder
177 int fs_dax_get(struct dax_device *dax_dev, void *holder, in fs_dax_get() argument
212 if (cmpxchg(&dax_dev->holder_data, NULL, holder)) { in fs_dax_get()
484 /* clear holder data */ in kill_dax()
638 * dax_holder() - obtain the holder of a dax device
641 * Return: the holder's data which represents the holder if registered,