The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/bsd/hfs/hfs_notification.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (C) 2003 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_LICENSE_HEADER_START@
    5  * 
    6  * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
    7  * 
    8  * This file contains Original Code and/or Modifications of Original Code
    9  * as defined in and that are subject to the Apple Public Source License
   10  * Version 2.0 (the 'License'). You may not use this file except in
   11  * compliance with the License. Please obtain a copy of the License at
   12  * http://www.opensource.apple.com/apsl/ and read it before using this
   13  * file.
   14  * 
   15  * The Original Code and all software distributed under the License are
   16  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   17  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   18  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   19  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   20  * Please see the License for the specific language governing rights and
   21  * limitations under the License.
   22  * 
   23  * @APPLE_LICENSE_HEADER_END@
   24  */
   25 
   26 #include <sys/systm.h>
   27 #include <sys/kernel.h>
   28 #include <sys/file.h>
   29 #include <sys/dirent.h>
   30 #include <sys/stat.h>
   31 #include <sys/buf.h>
   32 #include <sys/mount.h>
   33 #include <sys/vnode.h>
   34 #include <sys/malloc.h>
   35 #include <sys/namei.h>
   36 #include <sys/ubc.h>
   37 #include <sys/quota.h>
   38 
   39 #include <sys/kdebug.h>
   40 
   41 #include "hfs.h"
   42 #include "hfs_catalog.h"
   43 #include "hfs_cnode.h"
   44 #include "hfs_lockf.h"
   45 #include "hfs_dbg.h"
   46 #include "hfs_mount.h"
   47 #include "hfs_quota.h"
   48 #include "hfs_endian.h"
   49 
   50 #include "hfscommon/headers/BTreesInternal.h"
   51 #include "hfscommon/headers/FileMgrInternal.h"
   52 
   53 
   54 
   55 void hfs_generate_volume_notifications(struct hfsmount *hfsmp) {
   56         ExtendedVCB *vcb = HFSTOVCB(hfsmp);
   57         
   58         if (hfsmp->hfs_notification_conditions & VQ_LOWDISK) {
   59                 /* Check to see whether the free space is back above the minimal level: */
   60                 if (hfs_freeblks(hfsmp, 1) > hfsmp->hfs_freespace_notify_desiredlevel) {
   61             hfsmp->hfs_notification_conditions &= ~VQ_LOWDISK;
   62             vfs_event_signal(&HFSTOVFS(hfsmp)->mnt_stat.f_fsid, hfsmp->hfs_notification_conditions, NULL);
   63                 }
   64         } else {
   65                 /* Check to see whether the free space fell below the requested limit: */
   66                 if (hfs_freeblks(hfsmp, 1) < hfsmp->hfs_freespace_notify_warninglimit) {
   67             hfsmp->hfs_notification_conditions |= VQ_LOWDISK;
   68             vfs_event_signal(&HFSTOVFS(hfsmp)->mnt_stat.f_fsid, hfsmp->hfs_notification_conditions, NULL);
   69                 }
   70         };
   71 }

Cache object: 983980b3fecc696fa3e5879221600c8b


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.