ref, file, line, strblk(b));
BUG();
}
+
+int has_ref(struct block *b, char *ref)
+{
+ int i;
+ spin_lock(&refl);
+ for (i = 0; i < 16; i++)
+ if (b->holders[i].cnt &&
+ strcmp(b->holders[i].name, ref) == 0)
+ break;
+ spin_unlock(&refl);
+ return i < 16;
+}
#endif
/* Based on grow_dev_page */
#define add_ref(a,b,c,d) lafs_add_ref(a,b,c,d)
#define del_ref(a,b,c,d) lafs_del_ref(a,b,c,d)
+#define has_ref(a,b) lafs_has_ref(a,b)
#define lafs_get_block(a,b,c,d,e) _lafs_get_block(a,b,c,d,e)
#define first_in_seg(a,b,c,d,e) _first_in_seg(a,b,c,d,e)
#define add_ref(a,b,c,d) do {} while (0)
#define del_ref(a,b,c,d) do {} while (0)
+#define has_ref(a,b) (-1)
#define lafs_get_block(a,b,c,d,e) _lafs_get_block(a,b,c,d)
#define first_in_seg(a,b,c,d,e) _first_in_seg(a,b,c,d)
#if DEBUG_REF
void add_ref(struct block *b, char *ref, char *file, int line);
void del_ref(struct block *b, char *ref, char *file, int line);
+int has_ref(struct block *b, char *ref);
#endif
int lafs_setattr(struct dentry *dentry, struct iattr *attr);