Lines Matching refs:sft
52 sharefs_snap_create(sharetab_globals_t *sg, shnode_t *sft) in sharefs_snap_create() argument
63 if (sft->sharefs_snap) { in sharefs_snap_create()
67 if (sft->sharefs_generation == sg->sharetab_generation) { in sharefs_snap_create()
73 ASSERT(sft->sharefs_size != 0); in sharefs_snap_create()
74 kmem_free(sft->sharefs_snap, sft->sharefs_size + 1); in sharefs_snap_create()
75 sft->sharefs_snap = NULL; in sharefs_snap_create()
78 sft->sharefs_size = sg->sharetab_size; in sharefs_snap_create()
79 sft->sharefs_count = sg->sharetab_count; in sharefs_snap_create()
81 if (sft->sharefs_size == 0) { in sharefs_snap_create()
87 sft->sharefs_snap = kmem_zalloc(sft->sharefs_size + 1, KM_SLEEP); in sharefs_snap_create()
89 buf = sft->sharefs_snap; in sharefs_snap_create()
104 sft->sharefs_size) { in sharefs_snap_create()
140 sft->sharefs_snap_time = sg->sharetab_snap_time; in sharefs_snap_create()
141 sft->sharefs_generation = sg->sharetab_generation; in sharefs_snap_create()
143 ASSERT(iCount == sft->sharefs_count); in sharefs_snap_create()
151 kmem_free(sft->sharefs_snap, sft->sharefs_size + 1); in sharefs_snap_create()
152 sft->sharefs_size = 0; in sharefs_snap_create()
153 sft->sharefs_count = 0; in sharefs_snap_create()
154 sft->sharefs_snap = NULL; in sharefs_snap_create()
167 shnode_t *sft = VTOSH(vp); in sharefs_getattr() local
184 if (sft->sharefs_real_vp) { in sharefs_getattr()
190 vap->va_size = sft->sharefs_size; in sharefs_getattr()
191 vap->va_mtime = sft->sharefs_snap_time; in sharefs_getattr()
226 shnode_t *sft; in sharefs_open() local
253 sft = VTOSH(vp); in sharefs_open()
259 atomic_inc_32(&sft->sharefs_refs); in sharefs_open()
260 sft->sharefs_real_vp = 0; in sharefs_open()
268 sft); in sharefs_open()
278 shnode_t *sft = VTOSH(vp); in sharefs_close() local
286 if (sft->sharefs_snap != NULL) { in sharefs_close()
287 kmem_free(sft->sharefs_snap, sft->sharefs_size + 1); in sharefs_close()
288 sft->sharefs_size = 0; in sharefs_close()
289 sft->sharefs_snap = NULL; in sharefs_close()
290 sft->sharefs_generation = 0; in sharefs_close()
293 atomic_dec_32(&sft->sharefs_refs); in sharefs_close()
304 shnode_t *sft = VTOSH(vp); in sharefs_read() local
317 error = sharefs_snap_create(sg, sft); in sharefs_read()
325 if (len <= 0 || off >= sft->sharefs_size) { in sharefs_read()
330 if ((size_t)(off + len) > sft->sharefs_size) in sharefs_read()
331 len = sft->sharefs_size - off; in sharefs_read()
333 if (off < 0 || len > sft->sharefs_size) { in sharefs_read()
339 error = uiomove(sft->sharefs_snap + off, in sharefs_read()
352 shnode_t *sft; in sharefs_inactive() local
355 sft = (shnode_t *)gfs_file_inactive(vp); in sharefs_inactive()
356 if (sft) { in sharefs_inactive()
358 if (sft->sharefs_snap != NULL) { in sharefs_inactive()
359 kmem_free(sft->sharefs_snap, sft->sharefs_size + 1); in sharefs_inactive()
362 kmem_free(sft, fp->gfs_size); in sharefs_inactive()
371 shnode_t *sft; in sharefs_create_root_file() local
376 sft = VTOSH(vp); in sharefs_create_root_file()
378 sft->sharefs_real_vp = 1; in sharefs_create_root_file()