Lines Matching defs:lfp

110 #define	LOG_FILE_HOLD(lfp)	{ \
111 mutex_enter(&(lfp)->lf_lock); \
112 (lfp)->lf_refcnt++; \
113 mutex_exit(&(lfp)->lf_lock); \
116 #define LOG_FILE_RELE(lfp) { \
117 log_file_rele(lfp); \
127 #define LOG_FILE_LOCK_TO_WRITE(lfp) { \
128 mutex_enter(&(lfp)->lf_lock); \
129 (lfp)->lf_refcnt++; \
130 (lfp)->lf_writers++; \
133 #define LOG_FILE_UNLOCK_FROM_WRITE(lfp) { \
134 (lfp)->lf_writers--; \
135 if ((lfp)->lf_writers == 0 && ((lfp)->lf_flags & L_WAITING)) { \
136 (lfp)->lf_flags &= ~L_WAITING; \
137 cv_broadcast(&(lfp)->lf_cv_waiters); \
139 mutex_exit(&(lfp)->lf_lock); \
140 log_file_rele(lfp); \
536 log_file_rele(struct log_file *lfp)
541 mutex_enter(&lfp->lf_lock);
542 if (--lfp->lf_refcnt > 0) {
544 "log_file_rele lfp=%p decremented refcnt to %d\n",
545 (void *)lfp, lfp->lf_refcnt));
546 mutex_exit(&lfp->lf_lock);
549 if (lfp->lf_refcnt < 0) {
554 LOGGING_DPRINT((10, "log_file_rele lfp=%p freeing node\n",
555 (void *)lfp));
557 lfp->lf_flags &= ~(L_PRINTED | L_ERROR);
559 ASSERT(lfp->lf_flags == 0);
560 ASSERT(lfp->lf_writers == 0);
562 if (error = VOP_CLOSE(lfp->lf_vp, FCREAT|FWRITE|FOFFMAX, 1, (offset_t)0,
566 lfp->lf_path);
571 lfp->lf_path, (void *)lfp->lf_vp, lfp->lf_vp->v_count));
574 VN_RELE(lfp->lf_vp);
576 len = strlen(lfp->lf_path) + 1;
577 kmem_free(lfp->lf_path, len);
578 kmem_free(lfp, sizeof (*lfp));
738 struct log_file *lfp = NULL;
745 lfp = lbp->lb_logfile;
747 LOG_FILE_LOCK_TO_WRITE(lfp);
756 error = nfslog_write_logrecords(lfp, lrp_writers, num_recs);
758 LOG_FILE_UNLOCK_FROM_WRITE(lfp);
771 nfslog_write_logrecords(struct log_file *lfp,
785 ASSERT(MUTEX_HELD(&lfp->lf_lock));
787 vp = lfp->lf_vp;
837 if (!(lfp->lf_flags & L_PRINTED)) {
840 "stopped writing buffer \n", lfp->lf_path);
852 if (!(lfp->lf_flags & L_PRINTED)) {
855 "write error = %m\n", lfp->lf_path);
856 lfp->lf_flags |= L_PRINTED;
858 } else if (lfp->lf_flags & (L_ERROR | L_PRINTED)) {
859 lfp->lf_flags &= ~(L_ERROR | L_PRINTED);
861 "NFS Logging re-enabled for buffer %s\n", lfp->lf_path);