Home | History | Annotate | Download | only in nfs

Lines Matching defs:ke

116 	struct kevq *ke;
123 SLIST_FOREACH(ke, &kevlist, kev_link) {
125 if (nfs_getattrcache(ke->vp, &attr) != ENOENT)
132 ke->flags |= KEVQ_BUSY;
136 osize = ke->vp->v_size;
139 vn_lock(ke->vp, LK_SHARED | LK_RETRY);
140 (void) VOP_GETATTR(ke->vp, &attr, l->l_cred);
141 VOP_UNLOCK(ke->vp);
147 VN_KNOTE(ke->vp, NOTE_WRITE
149 ke->omtime = attr.va_mtime;
150 } else if (attr.va_mtime.tv_sec != ke->omtime.tv_sec
151 || attr.va_mtime.tv_nsec != ke->omtime.tv_nsec) {
152 VN_KNOTE(ke->vp, NOTE_WRITE);
153 ke->omtime = attr.va_mtime;
156 if (attr.va_ctime.tv_sec != ke->octime.tv_sec
157 || attr.va_ctime.tv_nsec != ke->octime.tv_nsec) {
158 VN_KNOTE(ke->vp, NOTE_ATTRIB);
159 ke->octime = attr.va_ctime;
162 if (attr.va_nlink != ke->onlink) {
163 VN_KNOTE(ke->vp, NOTE_LINK);
164 ke->onlink = attr.va_nlink;
168 ke->flags &= ~KEVQ_BUSY;
169 cv_signal(&ke->cv);
192 struct kevq *ke;
198 SLIST_FOREACH(ke, &kevlist, kev_link) {
199 if (ke->vp == vp) {
200 while (ke->flags & KEVQ_BUSY) {
201 cv_wait(&ke->cv, &nfskq_lock);
204 if (ke->usecount > 1) {
206 ke->usecount--;
209 cv_destroy(&ke->cv);
210 SLIST_REMOVE(&kevlist, ke, kevq, kev_link);
211 kmem_free(ke, sizeof(*ke));
300 struct kevq *ke;
344 SLIST_FOREACH(ke, &kevlist, kev_link) {
345 if (ke->vp == vp)
349 if (ke) {
351 ke->usecount++;
354 ke = kmem_alloc(sizeof(*ke), KM_SLEEP);
355 ke->vp = vp;
356 ke->usecount = 1;
357 ke->flags = 0;
358 ke->omtime = attr.va_mtime;
359 ke->octime = attr.va_ctime;
360 ke->onlink = attr.va_nlink;
361 cv_init(&ke->cv, "nfskqdet");
362 SLIST_INSERT_HEAD(&kevlist, ke, kev_link);